fmeobjects.FMEMultiSurface

Inheritance diagram of fmeobjects.FMEMultiSurface

FMEMultiSurface.appendPart(surface)

This appends the surface to the MultiSurface.

FMEMultiSurface.appendParts(multiSurface)

This appends the MultiSurface passed in to the MultiSurface.

FMEMultiSurface.boundingBox()

This method returns the bounding box of the geometry.

FMEMultiSurface.boundingCube()

This method returns the bounding cube of the geometry.

FMEMultiSurface.bounds()

Returns the bounds of the geometry.

FMEMultiSurface.clearMeasures()

Remove all measures from the geometry.

FMEMultiSurface.copyAttributesFromFeature(...)

Copies all the attributes from the given feature to traits on this geometry, if they match the (optional) regular expression.

FMEMultiSurface.copyNameFromGeometry(...)

Copies the name of the 'sourceGeometry' onto this geometry.

FMEMultiSurface.copyTraitsFromGeometry(...)

Copies all the traits from the given geometry that match the (optional) regular expression.

FMEMultiSurface.copyTraitsToFeature(...)

Copies all the traits from this geometry to attributes on the given feature, if they match the (optional) regular expression.

FMEMultiSurface.deleteName()

Deletes the geometry's name.

FMEMultiSurface.force2D()

Reduces the geometry to 2D.

FMEMultiSurface.force3D(newZ)

This sets the geometry's dimension to 3D.

FMEMultiSurface.getAppearanceReference(front)

This method returns the appearance reference within the Library associated with this multisurface.

FMEMultiSurface.getArea()

Area calculation.

FMEMultiSurface.getAsWireFrame()

Returns the wireframe of the contained surfaces as a FMEMultiCurve.

FMEMultiSurface.getMeasureNames()

Retrieve the names of the measures on this geometry.

FMEMultiSurface.getName()

This routine retrieves the 'name' of this geometry as a str.

FMEMultiSurface.getPartAt(index)

This method returns the surface at the given index.

FMEMultiSurface.getTrait(traitName)

Retrieves the geometry trait value of the specified trait name.

FMEMultiSurface.getTraitNames()

Retrieve the names of the traits on this geometry.

FMEMultiSurface.getTraitNullMissingAndType(...)

This method returns a tuple of a boolean, indicating if the trait is null, a boolean, indicating if the trait is missing, and an integer representing the type of the trait.

FMEMultiSurface.getTraitType(traitName)

Returns the type of given trait.

FMEMultiSurface.hasMeasures()

Check if this geometry or any sub part of this geometry has measures.

FMEMultiSurface.hasName()

Returns whether or not the geometry has a name.

FMEMultiSurface.is3D()

Returns whether or not the geometry is 3D.

FMEMultiSurface.isCollection()

Check if the geometry is an aggregate or multi-part collection.

FMEMultiSurface.isInPlane(tolerance, ...)

Works similarly to isPlanar(), but checks planarity with respect to given normal or given plane (if plane equation D is specified - see below).

FMEMultiSurface.isPlanar(tolerance)

Returns True if this is planar within the given tolerance, and False otherwise.

FMEMultiSurface.measureExists(measureName)

Returns True if the specified measure exists and False otherwise.

FMEMultiSurface.numParts()

This returns the number of surfaces that make up this MultiSurface.

FMEMultiSurface.offset(offsetPoint)

Offsets the geometry by the coords specified by 'offsetPoint'.

FMEMultiSurface.removeAppearanceReference(front)

When set at this FMEMultiSurface level, the appearance represents the default appearance to apply when the contained surfaces use the default appearance instead of a specific appearance.

FMEMultiSurface.removeLastPart()

This removes and returns the last surface of the MultiSurface.

FMEMultiSurface.removeMeasure(measureName)

Removes the measure with name 'measureName' if supplied, or the default measure, if there is one.

FMEMultiSurface.removeTraits(regexp)

This method has 4 modes:

FMEMultiSurface.renameMeasure(...)

Renames the measure specified by 'oldMeasureName' to the new name, specified by 'newMeasureName'.

FMEMultiSurface.resolvePartDefaults()

Recursively resolves surface parts with default appearances by replacing these defaults with the inherited appearance references stored by the parent surface, if such a value exists.

FMEMultiSurface.rotate2D(center, angle)

Rotates the contained surfaces about the z-axis by the specified angle, in degrees.

FMEMultiSurface.scale(xscale, yscale, zscale)

Scales the contained surfaces by the scaling factors, relative to the origin.

FMEMultiSurface.setAppearanceReference(...)

This method associates an appearance within the Library with this multisurface.

FMEMultiSurface.setName(name)

Sets the geometry's name with a str.

FMEMultiSurface.setTrait(traitName, traitValue)

Sets a geometry trait with the specified value.

FMEMultiSurface.setTraitNullWithType(...)

This method supplies a null trait value with a type to the geometry.

class FMEMultiSurface

FME MultiSurface Class

Create an instance of a MultiSurface geometry object.

init()

Default FMEMultiSurface constructor.

Return type

FMEMultiSurface

Returns

An instance of a MultiSurface Geometry object.

init(multiSurface)

Create a copy of the passed in MultiSurface geometry object.

Parameters

multiSurface (FMEMultiSurface) – The MultiSurface geometry object to create a copy of.

Return type

FMEMultiSurface

Returns

An instance of a MultiSurface Geometry object.

__init__(*args, **kwargs)
appendPart(surface)

This appends the surface to the MultiSurface. If None is passed in, nothing will be appended. All surfaces in the MultiSurface will be forced to have the same dimension. If any 3D surfaces exist, all 2D surfaces will be converted to 3D with a default Z value of 0.0.

Parameters

surface (FMESurface) – The surface to be appended.

Return type

None

Raises

FMEException – An exception is raised if an error occurred.

appendParts(multiSurface)

This appends the MultiSurface passed in to the MultiSurface. If None is passed in, nothing will be appended.

Parameters

multiSurface (FMEMultiSurface) – The MultiSurface to be appended.

Return type

None

Raises

FMEException – An exception is raised if an error occurred.

boundingBox()

This method returns the bounding box of the geometry.

Return type

tuple[tuple[float]]

Returns

The bounding box of the Geometry, in the form ((minx, miny), (maxx, maxy)).

boundingCube()

This method returns the bounding cube of the geometry.

Return type

tuple[tuple[float]]

Returns

The bounding box of the Geometry, in the form ((minx, miny, minz), (maxx, maxy, maxz)).

bounds()

Returns the bounds of the geometry.

Return type

tuple[FMEPoint]

Returns

The min point and max point of the bounds. None is returned if the geometry contains no points.

clearMeasures()

Remove all measures from the geometry.

Return type

None

copyAttributesFromFeature(sourceFeature, overwriteExisting, regexp, prefix)

Copies all the attributes from the given feature to traits on this geometry, if they match the (optional) regular expression.

Parameters
  • sourceFeature (FMEFeature) – The feature to copy attributes from.

  • overwriteExisting (bool) – Existing traits will be overwritten only if overwriteExisting is True.

  • regexp (str) – (Optional) The regular expression to match the attributes against. If regexp is not specified, then all attributes will be copied.

  • prefix (str) – (Optional) The prefix is put on all the trait names as they are copied. If it is not specified, a prefix will not be added to the trait names.

Return type

None

copyNameFromGeometry(sourceGeometry)

Copies the name of the ‘sourceGeometry’ onto this geometry. If ‘sourceGeometry’s name is blank or None, this geometry’s name will become None.

Parameters

sourceGeometry (FMEGeometry) – The geometry to copy the name from.

Return type

None

copyTraitsFromGeometry(sourceGeometry, overwriteExisting, regexp, prefix)

Copies all the traits from the given geometry that match the (optional) regular expression.

Parameters
  • sourceGeometry (FMEGeometry) – The geometry to copy traits from.

  • overwriteExisting (bool) – Existing traits will be overwritten only if overwriteExisting is True.

  • regexp (str) – (Optional) The regular expression to match the traits against. If regexp is not specified, or is an empty string, then all traits will be copied.

  • prefix (str) – (Optional) The prefix is put on all the trait names as they are copied. If it is not specified, a prefix will not be added to the trait names.

Return type

None

copyTraitsToFeature(destFeature, overwriteExisting, regexp, prefix)

Copies all the traits from this geometry to attributes on the given feature, if they match the (optional) regular expression.

Parameters
  • destFeature (FMEFeature) – The feature to copy traits to.

  • overwriteExisting (bool) – Existing attributes will be overwritten only if overwriteExisting is True.

  • regexp (str) – (Optional) The regular expression to match the traits against. If regexp is not specified, or is an empty string, then all traits will be copied.

  • prefix (str) – (Optional) The prefix is put on all the attribute names as they are copied. If it is not specified, a prefix will not be added to the attribute names.

Return type

None

deleteName()

Deletes the geometry’s name. If a name existed prior to this call then True is returned; otherwise False is returned.

Return type

bool

Returns

Returns a boolean indicating whether or not the name existed before deletion.

force2D()

Reduces the geometry to 2D.

Return type

None

force3D(newZ)

This sets the geometry’s dimension to 3D. All Z values are set to the value passed in, even if the geometry is already 3D.

Parameters

newZ (float) – The new Z value.

Return type

None

getAppearanceReference(front)

This method returns the appearance reference within the Library associated with this multisurface. The ‘front’ parameter controls whether this query should return the front or the back appearance reference. Both can be fetched independently. If this multisurface is a regular multisurface with no geometry instance, a FMEException will be thrown.

Parameters

front (bool) – Boolean indicting whether the appearance reference should be retrieved for the front or back of the surface.

Return type

int

Returns

The unique appearance reference for this appearance.

Raises

FMEException – An exception is raised if an error occurred or this surface is a regular multisurface with no geometry instance.

getArea()

Area calculation.

Return type

float

Returns

The calculated area.

getAsWireFrame()

Returns the wireframe of the contained surfaces as a FMEMultiCurve.

Return type

FMEMultiCurve or None

Returns

The wireframe of the contained surfaces or None if a multi curve count not be produced.

Raises

FMEException – An exception is raised if there was a failure in creating the multi curve Python object.

getMeasureNames()

Retrieve the names of the measures on this geometry.

Return type

tuple[str]

Returns

Return a tuple storing the names of the measures on this geometry. This will return an empty tuple if there are no measures. For FMEAggregate, FMEMultiSurface, and FMECompositeSurface, this will return the union of all measure names of all of its parts.

getName()

This routine retrieves the ‘name’ of this geometry as a str. This will return None if it did not have a name associated with it.

Return type

str or None

Returns

The geometry’s name.

getPartAt(index)

This method returns the surface at the given index. None is returned if the index is out of range.

Parameters

index (int) – The index of the surface part to return.

Return type

FMESurface or None

Returns

The surface at the given index. Note: This method returns a terminal surface type of the FMESurface; i.e. one of the leaf classes in the FMESurface inheritance graph. For example, a FMELine is returned if the surface truly is a line.

Raises

FMEException – An exception is raised if an error occurred.

getTrait(traitName)

Retrieves the geometry trait value of the specified trait name. Null trait values will be returned as an empty string. Binary blob traits are returned as a bytearray.

None is returned when the trait is not found on the geometry.

Parameters

traitName (str) – The name of the geometry trait.

Return type

bool, int, float, str, bytearray, bytes or None

Returns

The trait value.

Raises

FMEException – An exception is raised if there was a problem in retrieving the trait value.

getTraitNames()

Retrieve the names of the traits on this geometry.

Return type

tuple[str]

Returns

Return a tuple storing the names of the traits on this geometry. This will return an empty tuple if there are no traits. For all collections and containers, this will only return the names of traits on the outermost object only.

getTraitNullMissingAndType(traitName)

This method returns a tuple of a boolean, indicating if the trait is null, a boolean, indicating if the trait is missing, and an integer representing the type of the trait. The first boolean is True if ‘traitName’ maps to a null trait value on the geometry. Otherwise it is False. The second boolean is True if ‘traitName’ maps to a no value on the geometry. Otherwise it is False. If the trait is absent, FME_ATTR_UNDEFINED is returned for the type.

The possible trait types are FME_ATTR_UNDEFINED, FME_ATTR_BOOLEAN, FME_ATTR_INT8, FME_ATTR_UINT8, FME_ATTR_INT16, FME_ATTR_UINT16, FME_ATTR_INT32, FME_ATTR_UINT32, FME_ATTR_REAL32, FME_ATTR_REAL64, FME_ATTR_REAL80, FME_ATTR_STRING, FME_ATTR_ENCODED_STRING, FME_ATTR_INT64, FME_ATTR_UINT64.

Parameters

traitName (str) – The trait’s name.

Return type

tuple[bool, bool, int]

Returns

A tuple of 2 boolean values the first indicating whether or not the value of the trait is null, the second indicating whether or not the trait is missing, and an integer representing the trait type.

getTraitType(traitName)

Returns the type of given trait. If the trait cannot be found, FME_ATTR_UNDEFINED will be returned.

Returns one of FME_ATTR_UNDEFINED, FME_ATTR_BOOLEAN, FME_ATTR_INT8, FME_ATTR_UINT8, FME_ATTR_INT16, FME_ATTR_UINT16, FME_ATTR_INT32, FME_ATTR_UINT32, FME_ATTR_REAL32, FME_ATTR_REAL64, FME_ATTR_REAL80, FME_ATTR_STRING, FME_ATTR_ENCODED_STRING, FME_ATTR_INT64, FME_ATTR_UINT64.

Parameters

traitName (str) – The trait’s name.

Return type

int

Returns

The trait type.

hasMeasures()

Check if this geometry or any sub part of this geometry has measures.

Return type

bool

Returns

True if this geometry or any sub part of this geometry has measures, False otherwise.

hasName()

Returns whether or not the geometry has a name.

Return type

bool

Returns

Returns True if the geometry has a name and False otherwise.

is3D()

Returns whether or not the geometry is 3D.

Return type

bool

Returns

Returns True if the geometry is 3D and False otherwise. For FMENull, this method will always return True. For FMEAggregate, FMEMultiPoint, FMEMultiArea, FMEMultiText and FMEMultiCurve, this method will return True if any one of the sub-parts is 3D. If the collection is empty or all of its members are 2D, this method will return False.

isCollection()

Check if the geometry is an aggregate or multi-part collection.

Return type

bool

Returns

True if the geometry is an aggregate or multi-part collection.

isInPlane(tolerance, normalVector, valD, recalculateD)

Works similarly to isPlanar(), but checks planarity with respect to given normal or given plane (if plane equation D is specified - see below). If given normal is the zero vector, the normal used to check the planarity is computed using Newell’s method as in isPlanar(). valD is a reference to a value of D in the plane equation AX + BY + CZ = D. It can be used to make sure that multiple pieces lie in the same plane. If ‘recalculateD’ is set to False, the passed in value of D will be used in the calculation. If ‘recalcualteD’ is set to True, the passed in value is ignored and is instead automatically calculated (and returned in the second position of the returned tuple). A useful calling pattern for ensuring co-planarity is to get valD computed on the first call to the function setting ‘recalculateD’ to True, and then use this value for future calls with ‘recalculateD’ to False.

Parameters
  • tolerance (float) – The tolerance to check against.

  • normalVector (tuple[float, float, float]) – The normal used to check the planarity.

  • valD (float) – The value D from ‘AX + BY + CZ = D’.

  • recalculateD (bool) – Whether to recalculate ‘D’ or not.

Return type

tuple[bool, tuple, float]

Returns

A tuple containing a boolean, tuple, and float representing: 1) Whether or not the multisurface is in plane; 2) The normal vector returned; and 3) The value ‘D’. Note: If ‘recalculateD’ is False, the tuple returned will only contain the boolean and vector tuple (i.e. ‘valD’ is not returned).

isPlanar(tolerance)

Returns True if this is planar within the given tolerance, and False otherwise.

The planarity condition is computed by the following algorithm. The normal vector <A, B, C> is determined by the vertices of this multisurface using Newell’s method. For the first point (x’, y’, z’) of this multisurface, we compute D’ = Ax’ + By’ + Cz’. Then, this multisurface is planar if and only if every subsequent point (x, y, z) of this multisurface gives a D = Ax + By + Cz, that is within the tolerance amount of D’. That is, | D - D’ | <= tolerance.

If the specified tolerance is negative, then this method always returns True.

Parameters

tolerance (float) – The tolerance to check against.

Return type

bool

Returns

Whether the multisurface is planar within the tolerance supplied.

measureExists(measureName)

Returns True if the specified measure exists and False otherwise. If the ‘measureName’ parameter is not specified then the default measure is checked.

Parameters

measureName (str) – (Optional) The measure’s name.

Return type

bool

Returns

Boolean indicating whether or not the measure exists.

numParts()

This returns the number of surfaces that make up this MultiSurface.

Return type

int

Returns

The number of surfaces in MultiSurface.

offset(offsetPoint)

Offsets the geometry by the coords specified by ‘offsetPoint’.

Parameters

offsetPoint (FMEPoint) – The point to offset the coordinates of the geometry by.

Return type

None

Raises

FMEException – An exception is raised if an error occurred.

removeAppearanceReference(front)

When set at this FMEMultiSurface level, the appearance represents the default appearance to apply when the contained surfaces use the default appearance instead of a specific appearance. This call will remove the inherited appearance reference stored at this level, if any, on the side specified by the parameter front.

Parameters

front (bool) – Boolean indicting whether the appearance reference should be retrieved for the front or back of the multisurface.

Return type

None

removeLastPart()

This removes and returns the last surface of the MultiSurface. If there are no surfaces in the MultiSurface, it will return None.

Return type

FMESurface or None

Returns

The last surface of the MultiSurface. Note: This method returns a terminal surface type of the FMESurface; i.e. one of the leaf classes in the FMESurface inheritance graph. For example, a FMELine is returned if the surface truly is a line.

Raises

FMEException – An exception is raised if an error occurred.

removeMeasure(measureName)

Removes the measure with name ‘measureName’ if supplied, or the default measure, if there is one.

Parameters

measureName (str) – (Optional) The name of the measure to remove.

Return type

None

removeTraits(regexp)

This method has 4 modes:

  1. Remove all traits at the top level: regex == NULL

  2. Remove some traits at the top level: regex == <string>

  3. Remove all traits at all levels: regex == kFME_RecurseAll

  4. Remove some traits at all levels: regex == kFME_RecurseSome <string>

For example, specifying regex == NULL for a multi-surface will remove all traits at the root level of the multi-surface, whereas specifying regex == kFME_RecurseSome <string> will remove all traits from all levels of the multi surface that match <string>. If <string> is an illegal regular expression, no traits will be removed.

Return type

None

renameMeasure(oldMeasureName, newMeasureName)

Renames the measure specified by ‘oldMeasureName’ to the new name, specified by ‘newMeasureName’.

Parameters
  • oldMeasureName (str) – The original name of the measure.

  • newMeasureName (str) – The new name of the measure.

Return type

None

resolvePartDefaults()

Recursively resolves surface parts with default appearances by replacing these defaults with the inherited appearance references stored by the parent surface, if such a value exists. The nearest non-default ancestor value will be used to set the default appearances on the part.

Return type

None

rotate2D(center, angle)

Rotates the contained surfaces about the z-axis by the specified angle, in degrees. The rotation is performed relative to the center specified. A positive angle corresponds to a counter-clockwise rotation, when looking down onto the XY-plane.

Parameters
  • center (FMEPoint) – The center of the rotation.

  • angle (float) – The angle in degrees.

Return type

None

Raises

FMEException – An exception is raised if an error occurred.

scale(xscale, yscale, zscale)

Scales the contained surfaces by the scaling factors, relative to the origin.

Parameters
  • xscale (float) – The x scale factor.

  • yscale (float) – The y scale factor.

  • zscale (float) – The z scale factor.

Return type

None

Raises

FMEException – An exception is raised if an error occurred.

setAppearanceReference(appearanceRef, front)

This method associates an appearance within the Library with this multisurface. This is done by passing in the unique appearance reference for this appearance. Subsequent calls to this method on the same side, will override the previous appearance used with the new appearance passed in.

An appearance reference of ‘0’ represents the default appearance. Interpretation of the default appearance is left to the consumer of this geometry. When set at this FMESurface level, the appearance represents the default appearance to apply when the contained multisurfaces use the default appearance instead of a specific appearance. Contained multisurfaces may be found within nested multisurfaces, geometry instances that reference geometries containing multisurfaces, or as multisurfaces or multi-multisurfaces.

The second parameter controls whether this action should take place on the front of the contained multisurfaces or the back. Both can be set independently. The appearanceRef should be a valid reference to a definition stored in the FMELibrary. If the reference was not found in the library, it will still attach the reference to the instance, but will throw a FMEException. This is an unhealthy situation as it represents a ‘dangling reference’.

Parameters
  • appearanceRef (int) – The unique appearance reference for this appearance.

  • front (bool) – Boolean indicting whether the appearance reference should be set for the front or back of the multisurface.

Return type

None

Raises

FMEException – An exception is raised if an error occurred or the reference was not found in the library and a dangling reference was attached.

setName(name)

Sets the geometry’s name with a str. By supplying a blank name as input, this method will act as deleteName().

Parameters

name (str) – The geometry’s new name.

Return type

None

setTrait(traitName, traitValue)

Sets a geometry trait with the specified value. If the geometry trait already exists, its value and type will be changed. The following type numeric mappings are used:

PyInt ==> FME_Int32

PyFloat ==> FME_Real64

PyLong ==> FME_Int64

Binary values are to be specified as bytearray values or bytes values.

Parameters
Return type

None

setTraitNullWithType(traitName, traitType)

This method supplies a null trait value with a type to the geometry. If a trait with the same name already exists, it is overwritten.

Trait type must be one of FME_ATTR_UNDEFINED, FME_ATTR_BOOLEAN, FME_ATTR_INT8, FME_ATTR_UINT8, FME_ATTR_INT16, FME_ATTR_UINT16, FME_ATTR_INT32, FME_ATTR_UINT32, FME_ATTR_REAL32, FME_ATTR_REAL64, FME_ATTR_REAL80, FME_ATTR_STRING, FME_ATTR_ENCODED_STRING, FME_ATTR_INT64, FME_ATTR_UINT64.

Parameters
  • traitName (str) – The trait’s name.

  • traitType (int) – An integer representing the trait type.

Return type

None