public TinFilterType FilterType {get; set;}
Public Property FilterType As TinFilterType
public TinFilterType FilterType {get; set;}
Public Property FilterType As TinFilterType
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.
// 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 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 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) { } } }
Target Platforms: Windows 11, Windows 10