ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Geometry Namespace / MultipatchBuilderEx Class / QueryPatchIndicesWithTexture Method
TextureResource instance to check. If null, the method will collect indices of all patches that have null texture resource.
Example

In This Topic
    QueryPatchIndicesWithTexture Method
    In This Topic
    Returns an array of patch indices that reference the given TextureResource instance.
    Syntax
    Public Function QueryPatchIndicesWithTexture( _
       ByVal textureResource As TextureResource _
    ) As Integer()
    public int[] QueryPatchIndicesWithTexture( 
       TextureResource textureResource
    )

    Parameters

    textureResource
    TextureResource instance to check. If null, the method will collect indices of all patches that have null texture resource.

    Return Value

    Returns an array of patch indices. The array is empty if no patches reference the given texture resource instance.
    Example
    Construct Multipatch from another Multipatch
    {
      TextureResource brickTextureResource = null;
      BasicMaterial brickMaterialTexture = new BasicMaterial();
      var coords = new List<Coordinate3D>();
    
      // create the multipatchBuilderEx object
      var builder = new ArcGIS.Core.Geometry.MultipatchBuilderEx(multipatch);
    
      // check some properties
      bool hasM = builder.HasM;
      bool hasZ = builder.HasZ;
      bool hasID = builder.HasID;
      bool isEmpty = builder.IsEmpty;
      bool hasNormals = builder.HasNormals;
    
      var patches = builder.Patches;
      int patchCount = patches.Count;
    
      // if there's some patches
      if (patchCount > 0)
      {
        int pointCount = builder.GetPatchPointCount(0);
    
        // replace the first point in the first patch
        if (pointCount > 0)
        {
          // get the first point
          var pt = builder.GetPoint(0, 0);
          builder.SetPoint(0, 0, mapPoint);
        }
    
        // check which patches currently contain the texture
        var texture = builder.QueryPatchIndicesWithTexture(brickTextureResource);
    
        // assign a texture material
        patches[0].Material = brickMaterialTexture;
      }
    
      // update the builder for M awareness
      builder.HasM = true;
      // synchronize the patch attributes to match the builder attributes
      //   in this instance because we just set HasM to true on the builder, each patch will now get a default M value for it's set of coordinates
      builder.SynchronizeAttributeAwareness();
    
      // call ToGeometry to get the multipatch
      multipatch = builder.ToGeometry() as Multipatch;
    
      // multipatch.HasM will be true
    }
    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also