ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Data.Analyst3D Namespace / TinFilter Class / FilterType Property
Example

In This Topic
    FilterType Property (TinFilter)
    In This Topic
    Gets and sets the filter type. Default value is TinFilterType.All.
    Syntax
    public TinFilterType FilterType {get; set;}
    Public Property FilterType As TinFilterType
    Remarks
    Use this property in conjunction with the DataElementsOnly and FilterEnvelope properties to determine the elements retrieved.

    Here is a brief explanation of the possible combinations between FilterType and DataElementsOnly.

    FilterType = All and DataElementsOnly = false; find all elements in the extent. If your extent is the super node extent (see TinDataset.GetSuperNodeExtent) or includes part of the super node extent, then super nodes and the incident edges and triangles will be retrieved.

    FilterType = All and DataElementsOnly = true; find all elements in the extent that are classified as "inside". If your extent is the super node extent (see TinDataset.GetSuperNodeExtent) or includes part of the super node extent, then super nodes and the incident edges and triangles will not be retrieved as they are not classified as "inside".

    FilterType = InsideTin and DataElementsOnly = false; find all elements inside the TIN not associated with super nodes that are in the extent.

    FilterType = InsideTin and DataElementsOnly = true; find all elements inside the TIN not associated with super nodes that are in the extent and classified as "inside"

    FilterType = InsideDataArea; find all elements inside the TIN's data area that are in the extent. Elements that are in the TIN's data area are by definition classified as "inside" so the DataElementsOnly property is unnecessary.

    Example
    Search for TIN Nodes
    // search all nodes
    using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinDataset.SearchNodes(null))
    {
      while (nodeCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current)
        {
    
        }
      }
    }
    
    // search within an extent
    ArcGIS.Core.Data.Analyst3D.TinNodeFilter nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter();
    nodeFilter.FilterEnvelope = envelope;
    using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinDataset.SearchNodes(nodeFilter))
    {
      while (nodeCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current)
        {
    
        }
      }
    }
    
    // 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 nodeCursor = tinDataset.SearchNodes(nodeFilter))
    {
      while (nodeCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current)
        {
    
        }
      }
    }
    
    // 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 nodeCursor = tinDataset.SearchNodes(nodeFilter))
    {
      while (nodeCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current)
        {
    
        }
      }
    }
    
    Search for TIN Edges
    // search all edges
    using (ArcGIS.Core.Data.Analyst3D.TinEdgeCursor edgeCursor = tinDataset.SearchEdges(null))
    {
      while (edgeCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinEdge edge = edgeCursor.Current)
        {
    
        }
      }
    }
    
    // search within an extent
    ArcGIS.Core.Data.Analyst3D.TinEdgeFilter edgeFilter = new ArcGIS.Core.Data.Analyst3D.TinEdgeFilter();
    edgeFilter.FilterEnvelope = envelope;
    using (ArcGIS.Core.Data.Analyst3D.TinEdgeCursor edgeCursor = tinDataset.SearchEdges(edgeFilter))
    {
      while (edgeCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinEdge edge = edgeCursor.Current)
        {
    
        }
      }
    }
    
    // search all "inside" edges
    edgeFilter = new ArcGIS.Core.Data.Analyst3D.TinEdgeFilter();
    edgeFilter.FilterType = ArcGIS.Core.Data.Analyst3D.TinFilterType.InsideDataArea;
    using (ArcGIS.Core.Data.Analyst3D.TinEdgeCursor edgeCursor = tinDataset.SearchEdges(edgeFilter))
    {
      while (edgeCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinEdge edge = edgeCursor.Current)
        {
    
        }
      }
    }
    
    // search for hard edges
    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 = tinDataset.SearchEdges(edgeFilter))
    {
      while (edgeCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinEdge edge = edgeCursor.Current)
        {
    
        }
      }
    }
    Search for TIN Triangles
    // search all triangles
    using (ArcGIS.Core.Data.Analyst3D.TinTriangleCursor triangleCursor = tinDataset.SearchTriangles(null))
    {
      while (triangleCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = triangleCursor.Current)
        {
    
        }
      }
    }
    
    // search within an extent
    ArcGIS.Core.Data.Analyst3D.TinTriangleFilter triangleFilter = new ArcGIS.Core.Data.Analyst3D.TinTriangleFilter();
    triangleFilter.FilterEnvelope = envelope;
    using (ArcGIS.Core.Data.Analyst3D.TinTriangleCursor triangleCursor = tinDataset.SearchTriangles(triangleFilter))
    {
      while (triangleCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = triangleCursor.Current)
        {
    
        }
      }
    }
    
    // search all "inside" triangles
    triangleFilter = new ArcGIS.Core.Data.Analyst3D.TinTriangleFilter();
    triangleFilter.FilterType = ArcGIS.Core.Data.Analyst3D.TinFilterType.InsideDataArea;
    using (ArcGIS.Core.Data.Analyst3D.TinTriangleCursor triangleCursor = tinDataset.SearchTriangles(triangleFilter))
    {
      while (triangleCursor.MoveNext())
      {
        using (ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = triangleCursor.Current)
        {
    
        }
      }
    }
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.2 or higher.
    See Also