Topology Primitives

The Topology primitives are nodes, edges, and faces.

Each primitive has references to features that allow navigation between topology and features used during topology structuring. For example, the reference sys:area_to_face is used during structuring to find the faces that comprise a polygon.

Topology primitives can be used to:

  1. Validate data quickly by searching for issues in the topology such as:

    • Faces with references to zero areas (a hole in coverage) or more than one area (an overlap).

    • Nodes which are connected to zero edges (an isolated point), only one edge (a dead-end) or more than two edges (a junction).

    • Edges which reference more than one line (an overlap).

  2. Infer data by copying their geometry:

    • Create polygons from faces that represent the gaps between lines or holes in a coverage.

    • Create lines from edges to create networks that are split at every other point or line.

  3. Update data, keeping it connected by updating the geometries of nodes and edges to a new position. This will automatically update all the connected topology primitives and all of the features that reference them e.g:

    • Shift a topology node to update all the topology edges and features that connect to the node.

    • Simplifying a topology edge geometry to guarantee that the polygons on either side of the edge do not have gaps and overlaps introduced between them.

Note: 1Integrate will raise an error if any changes would cause problems with the specific topology setting such crossing edges or edges shorter than tolerance.

Note: You cannot update the geometries of faces, only the edges that form the face.

Note: To control how edges move when the node at their ends move, use the built-in operation set_topology_edge_drag_mode

Using Topology Primitives in a Session

Topology information is calculated by a Build Topology Task and accessible as system classes. The classes for topology are sys:node, sys:edge and sys:face. When you build topology, these classes are populated. 

A diagram of topology primititves.Topology table structure

There is only one set of topology primitives per session. To have different sets of topology primitives, you need different sessions with their own Build Topology task.

At the end of the session, the topology primitives are thrown away, unless you create an action to copy some or all of them to your own classes (for example copying face geometries for a polygonisation action).