ArcObjects Library Reference (GeoDatabase)  

TopologyGraph Class

Esri Topology Graph object.

TopologyGraph is a non-creatable object. References to non-creatable objects must be obtained through other objects.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Description

The Topology Graph can be defined as a planar representation of the geometries in the feature classes participating in a geodatabase topology or map topology (topology will be used indifferently in this text). There is only one graph per topology. It is derived from the topology object and cannot be co-created. The topology graph is designed to allow editing of a topology without breaking adjacency or connectivity of the participating features. For example, it can be used to edit the shared boundaries between two polygons without breaking the adjacency of the geometries. Additionally use it to move a set of overlapping routes while keeping all features coincident.

For a given topology, the graph is built on demand with a user-defined envelope that bounds the features to be included in the graph. At construction time the topological relationships are discovered and persisted in memory for further uses. This means that each node in the graph is aware of all the edges that are connected to it and that each edge knows its left/right polygons. The topology elements (Node and Edges) have also the knowledge of their parents. The topology parents are the features that were used to created a given topology element. For example, a node created at the intersection of two lines will have two parents, which are the two lines.

As all topology primitives are stored in memory it is not recommended to build the topology graph for a large extent. For efficiency reasons the smaller the extent of the graph the better, however some applications could require larger extents.

The Topology Graph is composed of two types of topological primitives; edges and nodes. An edge has a fromNode and a toNode. A node is created at the feature's endpoints as well as at the intersection of feature geometries participating in the topology. For example, if two lines intersect then the graph will contain a node at the intersection, even if the two features do not contain vertices at this point.

There are a number of properties and methods that can be used on the graph and its components to:

Supported Platforms

Windows, Solaris, Linux

Extended Error Information

Use the ISupportErrorInfo method InterfaceSupportsErrorInfo to determine if the object supports extended error information. If the object supports extended error info, VC++ developers should use the OLE/COM IErrorInfo interface to access the ErrorInfo object. Visual Basic developers should use the global error object Err to retrieve this extended error information.

Interfaces

Interfaces Description
ISupportErrorInfo Indicates whether a specific interface can return Automation error objects.
ITopologyGraph Provides access to members that control the topology graph.
ITopologyGraph2 Provides access to members that control the topology graph.
ITopologyGraph3 Provides access to members that control the topology graph.

Event Interfaces

Interfaces Description
ITopologyGraphEvents (default) Provides access to events that occur with a topology graph.

Working with Events

[Visual Basic 6.0]

When working with TopologyGraph's default outbound interface in Visual Basic 6 declare variables as follows:

Private WithEvents pTopologyGraph as TopologyGraph