ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Data.Topology Namespace / TopologyElement Class / GetParentFeatures Method
Example

In This Topic
    GetParentFeatures Method
    In This Topic
    Gets the parent feature(s) that spawn this topology element. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    public IReadOnlyList<FeatureInfo> GetParentFeatures()
    Public Function GetParentFeatures() As IReadOnlyList(Of FeatureInfo)

    Return Value

    A list of one or more parent features that spawn this topology element.
    Exceptions
    ExceptionDescription
    A geodatabase-related exception has occurred.
    Example
    FindClosestElement
    public void FindClosestElement()
    {
      using (Geodatabase geodatabase = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(@"C:\TestData\GrandTeton.gdb"))))
      using (Topology topology = geodatabase.OpenDataset<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);
    
          System.Diagnostics.Debug.Assert(
            topologyElementViaCampsites12 != null, "There should be a topology element corresponding to 'queryPointViaCampsites12' within the 'searchRadius' units.");
    
          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.
          }
        });
      }
    }
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also