To transport features from one format to another, FME considers features to be collections of attribute names and values associated with two-dimensional (2D) or three-dimensional (3D) geometry. Arbitrary dimensions will be supported in a future release. FME places no restrictions on the values or types of attributes. Attribute names consist of one or more ASCII characters.
All FME features have an attribute called fme_geometry that indicates their geometry type.
The coordinates of an FME feature may contain any of the types of geometry shown in the following table.
Geometry Type | Example | FME Geometry Value | Description |
---|---|---|---|
Point |
![]() |
fme_point | A single x, y and possibly z set of values representing a single point on the earth's surface. |
Line |
![]() |
fme_line | A line of two or more x, y, and optionally z values. Spaghetti lines which cross them-selves are allowed, but FME always re-moves any adjacent duplicated points it finds in lines as they are read. |
Polygon |
![]() |
fme_polygon | A closed ring of 2- or 3-dimensional vertices that represent an area. The first and last points are identical. The polygon may follow either the right-hand or left-hand rule. |
Donut Polygon |
![]() |
fme_donut | A set of closed rings or polygons. The first ring defines the outer boundary of the area. The remaining rings must be completely in-side the outer boundary and define the “holes” in the area. No orientation rule is enforced. |
Aggregate |
![]() |
fme_aggregate | A collection of distinct geometric entities, treated as a single unit. These may or may not be homogenous. |
no coordinates | fme_undefined | If a feature has no coordinates, its geometry type is set to fme_undefined. |
In addition to the fme_geometry attribute which indicates what the coordinates of an FME feature are, each FME feature also has an fme_type attribute which controls the interpretation of those coordinates. For example, a feature with fme_geometry of fme_point may be used to represent a point, a text object, an arc, or an ellipse. The value of the fme_type attribute is used to indicate which interpretation should be made.
The fme_type attribute can have one of a set number of values. Depending on the value of fme_type, there may be additional attributes required to fully interpret the geometry. The following table lists the allowed values for fme_type, the associated fme_geometry, and its additional attributes.
fme_type |
fme_geometry |
Additional Attributes |
fme_arc |
fme_point |
fme_rotation: The rotation of the primary axis in degrees counterclockwise from the primary axis. If not set, then 0 is assumed.
fme_primary_axis: The length of the primary semi-axis of the defining ellipse measured in ground units. fme_secondary_axis: The length of the secondary semi-axis of the defining ellipse measured in ground units. For circular arcs this value will be equal to the fme_primary_axis. fme_start_angle:
fme_sweep_angle: |
fme_area |
fme_polygon or fme_donut or fme_aggregate |
None |
fme_collection |
fme_aggregate |
None |
fme_ellipse |
fme_point |
fme_rotation: The rotation of the primary axis in degrees counterclockwise from horizontal. If not set, then 0 is assumed. fme_primary_axis: The length of the primary semi-axis of the ellipse measured in ground units. fme_secondary_axis: The length of the secondary semi-axis of the ellipse measured in ground units. For circles this value will be equal to the fme_primary_axis. |
fme_line |
fme_line or fme_aggregate |
None |
fme_no_geom |
fme_undefined |
None |
fme_point |
fme_point or fme_aggregate |
None |
fme_raster |
fme_aggregate |
None |
fme_solid |
fme_aggregate |
None. Note: fme_solid is the fme_type for the following geometries: IFMEExtrusion, IFMEBox, IFMEBRepSolid, IFMECSGSolid, and IFMECompositeSolid. For a description of FME Surfaces and Solids, see FME 3D Support in the FME Fundamentals help file (via the Workbench Help menu). |
fme_surface |
fme_aggregate |
None. Note: fme_surface is the fme_type for the following geometries: IFMEFace, IFMERectangleFace, IFMETriangleStrip, IFMETriangleFan and IFMECompositeSurface. For a description of FME Surfaces and Solids, see FME 3D Support in the help file. |
fme_text |
fme_point |
fme_rotation: The rotation of the text in degrees counterclockwise from horizontal. If not set, then 0 is assumed. fme_text_string: The actual annotation string. fme_text_size: The height of the text measured in ground units. |
Any features with an fme_geometry value of fme_aggregate, and an fme_type other than fme_collection must be homogeneous aggregates. An fme_type of fme_collection allows the feature to have heterogeneous aggregate geometry.
This attribute holds the feature type of the feature. This attribute has value only when coming from the reader. Setting it to a specific value when it goes into a writer will have no effect.
Some attributes are not present on features by default, but can be requested via the READER_META_ATTRIBUTES directive:
READER_META_ATTRIBUTES <requested attribute>
For example:
READER_META_ATTRIBUTES fme_feature_type
adds fme_feature_type, and
READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
adds fme_feature_type, fme_dataset and fme_basename.