TopologyBuilder
Computes topology on input point, line, and/or area features.
This transformer does not assume that all input data is clean and noded properly unless Assume Clean Data is set to Yes. It takes any data and constructs the resulting topology after computing any intersections that are present in the input data.
Input Ports
Output Ports
The TopologyBuilder outputs the significant Nodes and Edges with attributes describing their topological relationships. Faces are output with information about the Edges that form them.
Note: Unlike most transformers, you cannot name these attributes.
Output Ports | Output Feature Properties |
---|---|
Node |
All topologically significant nodes are output. Attributes may include _node_number, _node_angle{}.fme_arc_id, _node_angle{}.fme_arc_angle. |
Edge |
All topologically significant lines (edges) are output. Attributes may include _edge_id, _right_face, _left_face, _right_edge, _left_edge, _from_node, _to_node, _faces. |
Face |
The polygonal (face) entities constructed are output here. These have a list of the edges which make up the face along with the actual geometry, and a list of the adjacent polygons. Attributes may include _creation_instance, _stop, _overlaps, _face_id, _faces, _perimeter, _area, or _edges. |
Universe |
This is the polygon that represents everything not covered by any of the input polygons. This feature consists of a list of the defining edge identifiers that make it up but does not have any associated geometry. Attributes may include _face_id, _perimeter, _area, _edges. |
<Rejected> | Features without point, text, curve or area geometries will be output through this port. |
Parameters
Transformer
The input features may be grouped into separate topology sets based on attribute values. All attributes are carried across from the input features to the output features.
Note: How parallel processing works with FME: see About Parallel Processing for detailed information.
This parameter determines whether or not the transformer should perform the work across parallel processes. If it is enabled, a process will be launched for each group specified by the Group By parameter.
Parallel Processing Levels
For example, on a quad-core machine, minimal parallelism will result in two simultaneous FME processes. Extreme parallelism on an 8-core machine would result in 16 simultaneous processes.
You can experiment with this feature and view the information in the Windows Task Manager and the Workbench Log window.
Yes: This transformer will process input groups in order. Changes on the value of the Group By parameter on the input stream will trigger batch processing on the currently accumulating group. This will improve overall speed if groups are large/complex, but could cause undesired behavior if input groups are not truly ordered.
No: This is the default behavior. Processing will only occur in this transformer once all input is present.
Parameters
The number indicates the maximum length to output any edge. If any line contains more than this number of coordinates, it will be broken into pieces which are output separately, each with their own edge IDs, and correctly noded. A value of 0 indicates an unlimited number of coordinates per edge.
If set to Yes, the transformer enters a mode where no collinear lines or overlapping points are output at all, whether they came from source linear features or from the borders of source area features or input points, or calculated as intersection points. In this mode, all output lines or points which were overlapping with at least one direct input will contain a list attribute (_overlapping_input_data) with information about each input with which it was overlapping. This keyword sets the fieldname of the list attribute to contain all the attributes (except geometry attributes that start with fme_) from all of the input lines or points that were overlapping with the final output line or point.
A side effect of this option is that only arcs that form part of a polygon boundary will be considered in the calculation of _left_edge and _right_edge. (All arcs originating only from line input will have their own ID supplied as their left edge ID, and the negation of this as their right edge ID.)
When this parameter is set to All, the transformer does the following:
- All of the arcs from the output polygon will be listed in the comma separated _lines attribute. A 0 entry separates arcs of different boundaries. An example _lines attribute is "1,2,-3,0,5,0,7".
- If the universe consists of multiple disjoint areas, it will be returned as a single feature with a MultiArea geometry.
When this parameter is set to First Per Boundary, the transformer does the following:
- The first arc of each boundary will be in the _lines list attribute. An example list is _lines{0} = 1, _lines{1} = 5, _lines{2} = 7.
- If the universe consists of multiple disjoint areas, a different feature will be returned for each area.
When this parameter is set to First Per Outer and Disjoint Inner Boundary, the transformer does the following:
- The first arc of each outer and disjoint inner boundary will be in the _lines list attribute. If an inner boundary is topologically connected to the outer boundary, it is not considered disjoint. If two inner boundaries are topologically connected to each other, only one is considered disjoint. An example list is _lines{0} = 1, _lines{1} = 5.
- If the universe consists of multiple disjoint areas, a different feature will be returned for each area.
If Propagate All Attributes From Input is set to Yes, attribute lists are added to each output feature, composed of attributes from the relevant input features. For each node, this will be a list of lines and a list of polygons touching the node; for lines, there will be a list of nodes and a list of polygons; and for polygons, a list of nodes and a list of lines. The base names for the lists will be _nodes, _lines, and _polygons.
If set to Yes, input features will be deaggregated by flattening all levels of aggregate and multi geometries. Composite geometries will not be split and geometry instances will not be exploded. If set to No, input features will not be deaggregated and will be accepted or rejected based on their root level geometry.
Preserve Internal Edges (Advanced) specifies that coordinate "cycles" within a polygon are allowable and will be preserved. A "cycle" is an edge that occurs twice in the same polygon's boundary (once in each direction); the edge's ID will appear twice in that polygon's edge list, positive in one instance and negative in the other.
Assume Clean Data (Advanced) specifies that the input is topologically clean and noded properly and therefore no intersection will be performed. To be topologically clean, the data must contain no un-noded self intersections; this may be confirmed using the appropriate Self Intersection rule inside GeometryValidator. Otherwise, the intersections of the data are computed prior to constructing the topology.
Example
Editing Transformer Parameters
Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.
Transformer Categories
Search FME Knowledge Center
Search for samples and information about this transformer on the FME Knowledge Center.
Tags Keywords: connectivity hub Topologizer