# TopologyBuilder

Computes topology on input point, line, and/or area features, and outputs significant nodes, edges, and faces with attributes describing topological relationships.

### Typical Uses

• Computing topological relationships on vector features
• Finding intersections

## How does it work?

The TopologyBuilder computes topology on input point, line, and/or area features.

Topologically significant nodes and lines are computed using all input features and output with additional attributes which describe the topological relationships. The TopologyBuilder will intersect the inputs before building topology, provided the Generate From advanced parameter is set to End Nodes and Intersections. It takes any data and constructs the resulting topology after computing any intersections present in the input data.

It outputs the significant Nodes (points) and Edges (lines) with attributes describing their topological relationships. Faces (areas) may be output with information about the Edges which form them.

This transformer is typically used to determine topological relationships to aid in decision making in later transformers.

* Red line indicates direction of flow.

## Usage Notes

• The TopologyBuilder will not correct data - it will only find relationships and intersections that exist.
• Though Z values (elevations) will be retained on features, they are not considered when computing intersections.

### Network Topology in FME

In order to successfully generate a network topology, some conditions must be met.

• Lines must touch (be snapped) at an end vertex - first or last.

• Lines must be split at junctions. The TopologyBuilder can automate this process, but will not consider z-values (and so may not produce correct results for overpasses/underpasses, for example.)

• A junction at an interior vertex (not an end vertex) produces a complex edge, which is not supported.

### Choosing a Spatial Transformer

Many transformers can assess spatial relationships and perform spatial joins - analyzing topology, merging attributes, and sometimes modifying geometry. Generally, choosing the one that is most specific to the task you need to accomplish will provide the optimal performance results. If there is more than one way to do it (which is frequently the case), time spent on performance testing alternate methods may be worthwhile.

To correctly analyze spatial relationships, all features should be in the same coordinate system. The Reprojector may be useful for reprojecting features within the workspace.

## Configuration

### Output Ports

Each topological primitive is output with attributes describing its topological relationships. Unlike most transformers, you cannot name these attributes.

## 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.

### Defining Values

There are several ways to define a value for use in a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.

### Dialog Options - Tables

Transformers with table-style parameters have additional tools for populating and manipulating values.

## Reference

 Processing Behavior Feature Holding Yes Dependencies Aliases Topologizer History

## FME Community

The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.

Search for all results about the TopologyBuilder on the FME Community.

Examples may contain information licensed under the Open Government Licence – Vancouver and/or the Open Government Licence – Canada.