ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data.Topology Namespace / TopologyElement Class
Members Example

In This Topic
    TopologyElement Class
    In This Topic
    Represents a topological element within a topology graph.
    Object Model
    TopologyElement ClassGeometry Class
    Syntax
    Example
    Find closest element from a topology graph
    {
      static void FindClosestElement()
      {
        using (Geodatabase geodatabase = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(@"C:\TestData\GrandTeton.gdb"))))
        using (ArcGIS.Core.Data.Topology.Topology topology = geodatabase.OpenDataset<ArcGIS.Core.Data.Topology.Topology>("Backcountry_Topology"))
        {
          // Build a topology graph using the extent of the topology dataset.
          topology.BuildGraph(topology.GetExtent(), (topologyGraph) =>
          {
            MapPoint queryPointViaCampsites12 = null;
    
            using (Feature campsites12 = GetFeature(geodatabase, "Campsites", 12))
            {
              queryPointViaCampsites12 = campsites12.GetShape() as MapPoint;
            }
    
            double searchRadius = 1.0;
    
            TopologyElement topologyElementViaCampsites12 = topologyGraph.FindClosestElement<TopologyElement>(queryPointViaCampsites12, searchRadius);
            IReadOnlyList<FeatureInfo> parentFeatures = topologyElementViaCampsites12.GetParentFeatures();
    
            Console.WriteLine("The parent features that spawn 'topologyElementViaCampsites12' are:");
            foreach (FeatureInfo parentFeature in parentFeatures)
            {
              Console.WriteLine($"\t{parentFeature.FeatureClassName}; OID: {parentFeature.ObjectID}");
            }
    
            TopologyNode topologyNodeViaCampsites12 = topologyGraph.FindClosestElement<TopologyNode>(queryPointViaCampsites12, searchRadius);
    
            if (topologyNodeViaCampsites12 != null)
            {
              // There exists a TopologyNode nearest to the query point within searchRadius units.
            }
    
            TopologyEdge topologyEdgeViaCampsites12 = topologyGraph.FindClosestElement<TopologyEdge>(queryPointViaCampsites12, searchRadius);
    
            if (topologyEdgeViaCampsites12 != null)
            {
              // There exists a TopologyEdge nearest to the query point within searchRadius units.
            }
          });
        }
      }
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.CoreObjectsBase
          ArcGIS.Core.Data.Topology.TopologyElement
             ArcGIS.Core.Data.Topology.TopologyEdge
             ArcGIS.Core.Data.Topology.TopologyNode

    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also