ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / TinLayer Class / SearchEdges Method
Filter by parameters. See ArcGIS.Core.Data.Analyst3D.TinEdgeFilter. If null, then all edges will be retrieved.
Example

In This Topic
    SearchEdges Method (TinLayer)
    In This Topic
    Retrieves the edges in the TIN that satisfy the criteria set in the filter. If no filter is set, all edges will be retrieved. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    Public Function SearchEdges( _
       ByVal filter As TinEdgeFilter _
    ) As TinEdgeCursor
    public TinEdgeCursor SearchEdges( 
       TinEdgeFilter filter
    )

    Parameters

    filter
    Filter by parameters. See ArcGIS.Core.Data.Analyst3D.TinEdgeFilter. If null, then all edges will be retrieved.

    Return Value

    Exceptions
    ExceptionDescription
    This method or property must be called within the lambda passed to QueuedTask.Run
    Remarks
    To ensure maximum robustness, callers should explicitly dispose of the returned ArcGIS.Core.Data.Analyst3D.TinEdgeCursor in either a using statement or a finally block.
    Example
    Search for TIN Nodes, Edges, Triangles
    {
      // Note: Needs QueuedTask to run
      {
        // search all "inside" nodes
        using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinLayer.SearchNodes(null))
        {
          while (nodeCursor.MoveNext())
          {
            using ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current;
            //Use the node
          }
        }
    
        // search "inside" nodes with an extent
        ArcGIS.Core.Data.Analyst3D.TinNodeFilter nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter();
        nodeFilter.FilterEnvelope = envelope;
        using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinLayer.SearchNodes(nodeFilter))
        {
          while (nodeCursor.MoveNext())
          {
            using ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current;
            //use the node
          }
        }
    
        // search for super nodes only
        var supernodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter();
        supernodeFilter.FilterEnvelope = tinLayer.GetTinDataset().GetSuperNodeExtent();
        supernodeFilter.DataElementsOnly = false;
        supernodeFilter.SuperNode = true;
        using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinLayer.SearchNodes(nodeFilter))
        {
          while (nodeCursor.MoveNext())
          {
            using ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current;
            //Use the node
          }
        }
    
        // search all edges within an extent
        //    this could include outside or edges attached to super nodes depending upon the extent
        ArcGIS.Core.Data.Analyst3D.TinEdgeFilter edgeFilterAll = new ArcGIS.Core.Data.Analyst3D.TinEdgeFilter();
        edgeFilterAll.FilterEnvelope = envelope;
        edgeFilterAll.DataElementsOnly = false;
        using (ArcGIS.Core.Data.Analyst3D.TinEdgeCursor edgeCursor = tinLayer.SearchEdges(edgeFilterAll))
        {
          while (edgeCursor.MoveNext())
          {
            using ArcGIS.Core.Data.Analyst3D.TinEdge edge = edgeCursor.Current;
            //Use the edge
          }
        }
    
        // search for hard edges in the TIN
        var edgeFilter = new ArcGIS.Core.Data.Analyst3D.TinEdgeFilter();
        edgeFilter.FilterByEdgeType = true;
        edgeFilter.EdgeType = ArcGIS.Core.Data.Analyst3D.TinEdgeType.HardEdge;
        using (ArcGIS.Core.Data.Analyst3D.TinEdgeCursor edgeCursor = tinLayer.SearchEdges(edgeFilter))
        {
          while (edgeCursor.MoveNext())
          {
            using ArcGIS.Core.Data.Analyst3D.TinEdge edge = edgeCursor.Current;
            //Use the edge
          }
        }
    
        // search for "inside" triangles in an extent
        ArcGIS.Core.Data.Analyst3D.TinTriangleFilter triangleFilter = new ArcGIS.Core.Data.Analyst3D.TinTriangleFilter();
        triangleFilter.FilterEnvelope = envelope;
        triangleFilter.DataElementsOnly = true;
        using (ArcGIS.Core.Data.Analyst3D.TinTriangleCursor triangleCursor = tinLayer.SearchTriangles(triangleFilter))
        {
          while (triangleCursor.MoveNext())
          {
            using ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = triangleCursor.Current;
            //use the triangle
          }
        }
      }
    }
    Requirements

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

    ArcGIS Pro version: 3.2 or higher.
    See Also