ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data.Analyst3D Namespace / TinNodeFilter Class / TinNodeFilter Constructor
Example

In This Topic
    TinNodeFilter Constructor
    In This Topic
    Create an instance of TinNodeFilter.
    Syntax
    Public Function New()
    public TinNodeFilter()
    Example
    Search for TIN Nodes
    {
      // search all nodes that intersect the data extent
      using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursorsearch = tinDataset.SearchNodes(null))
      {
        while (nodeCursor.MoveNext())
        {
          using (ArcGIS.Core.Data.Analyst3D.TinNode nodeCurrent = nodeCursor.Current)
          {
            // do something with the node
          }
        }
      }
    
      // search within an extent
      ArcGIS.Core.Data.Analyst3D.TinNodeFilter nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter();
      nodeFilter.FilterEnvelope = envelope; //or use any other appropriate envelope
      using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursorSearch = tinDataset.SearchNodes(nodeFilter))
      {
        while (nodeCursor.MoveNext())
        {
          using (ArcGIS.Core.Data.Analyst3D.TinNode nodeCurrent = nodeCursor.Current)
          {
            // do something with the node
          }
        }
      }
    
      // search all "inside" nodes
      nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter();
      nodeFilter.FilterType = ArcGIS.Core.Data.Analyst3D.TinFilterType.InsideDataArea;
      using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursorSearch = tinDataset.SearchNodes(nodeFilter))
      {
        while (nodeCursor.MoveNext())
        {
          using (ArcGIS.Core.Data.Analyst3D.TinNode nodeCurrent = nodeCursor.Current)
          {
            // do something with the node
          }
        }
      }
    
      // search for super nodes only
      nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter();
      nodeFilter.FilterEnvelope = tinDataset.GetSuperNodeExtent();
      nodeFilter.SuperNode = true;
      using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursorSearch = tinDataset.SearchNodes(nodeFilter))
      {
        while (nodeCursor.MoveNext())
        {
          using (ArcGIS.Core.Data.Analyst3D.TinNode nodeCurrent = nodeCursor.Current)
          {
            // do something with the node
          }
        }
      }
    }
    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