ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Geometry Namespace / BasicMaterial Class / BasicMaterial Constructor / BasicMaterial Constructor(BasicMaterial)
The material used for construction.
Example

In This Topic
    BasicMaterial Constructor(BasicMaterial)
    In This Topic
    Creates a deep copy of the BasicMaterial.
    Syntax
    public BasicMaterial( 
       BasicMaterial other
    )
    Public Function New( _
       ByVal other As BasicMaterial _
    )

    Parameters

    other
    The material used for construction.
    Remarks
    The TextureResource it contains is deep copied. The copied material does not share the texture resource with the original.
    Example
    Construct Multipatch via MultipatchBuilderEx
    var coords_face1 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495461061000071,41.902603910000039,62.552700000000186),
      new Coordinate3D(12.495461061000071,41.902603910000039,59.504700000004959),
      new Coordinate3D(12.495461061000071,41.902576344000067,59.504700000004959),
      new Coordinate3D(12.495461061000071,41.902603910000039,62.552700000000186),
      new Coordinate3D(12.495461061000071,41.902576344000067,59.504700000004959),
      new Coordinate3D(12.495461061000071,41.902576344000067,62.552700000000186),
    };
    
    var coords_face2 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495461061000071, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 62.552700000000186),
    };
    
    var coords_face3 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495488442000067, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 62.552700000000186),
    };
    
    var coords_face4 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
    };
    
    var coords_face5 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 62.552700000000186),
    };
    
    var coords_face6 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495488442000067, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 62.552700000000186),
    };
    
    // materials
    var materialRed = new BasicMaterial();
    materialRed.Color = System.Windows.Media.Colors.Red;
    
    var materialTransparent = new BasicMaterial();
    materialTransparent.Color = System.Windows.Media.Colors.White;
    materialTransparent.TransparencyPercent = 80;
    
    var blueTransparent = new BasicMaterial(materialTransparent);
    blueTransparent.Color = System.Windows.Media.Colors.SkyBlue;
    
    // create a list of patch objects
    var patches = new List<Patch>();
    
    // create the multipatchBuilderEx object
    var mpb = new ArcGIS.Core.Geometry.MultipatchBuilderEx();
    
    // make each patch using the appropriate coordinates and add to the patch list
    var patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face1;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face2;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face3;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face4;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face5;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face6;
    patches.Add(patch);
    
    patches[0].Material = materialRed;
    patches[1].Material = materialTransparent;
    patches[2].Material = materialRed;
    patches[3].Material = materialRed;
    patches[4].Material = materialRed;
    patches[5].Material = blueTransparent;
    
    // assign the patches to the multipatchBuilder
    mpb.Patches = patches;
    
    // check which patches currently contain the material
    var red = mpb.QueryPatchIndicesWithMaterial(materialRed);
    //   red should be [0, 2, 3, 4]
    
    
    // call ToGeometry to get the multipatch
    multipatch = mpb.ToGeometry() as Multipatch;
    
    Construct Multipatch via MultipatchBuilderEx
    var coords_face1 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495461061000071,41.902603910000039,62.552700000000186),
      new Coordinate3D(12.495461061000071,41.902603910000039,59.504700000004959),
      new Coordinate3D(12.495461061000071,41.902576344000067,59.504700000004959),
      new Coordinate3D(12.495461061000071,41.902603910000039,62.552700000000186),
      new Coordinate3D(12.495461061000071,41.902576344000067,59.504700000004959),
      new Coordinate3D(12.495461061000071,41.902576344000067,62.552700000000186),
    };
    
    var coords_face2 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495461061000071, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 62.552700000000186),
    };
    
    var coords_face3 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495488442000067, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 62.552700000000186),
    };
    
    var coords_face4 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
    };
    
    var coords_face5 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 59.504700000004959),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 62.552700000000186),
    };
    
    var coords_face6 = new List<Coordinate3D>()
    {
      new Coordinate3D(12.495488442000067, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495461061000071, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902603910000039, 62.552700000000186),
      new Coordinate3D(12.495461061000071, 41.902576344000067, 62.552700000000186),
      new Coordinate3D(12.495488442000067, 41.902576344000067, 62.552700000000186),
    };
    
    // materials
    var materialRed = new BasicMaterial();
    materialRed.Color = System.Windows.Media.Colors.Red;
    
    var materialTransparent = new BasicMaterial();
    materialTransparent.Color = System.Windows.Media.Colors.White;
    materialTransparent.TransparencyPercent = 80;
    
    var blueTransparent = new BasicMaterial(materialTransparent);
    blueTransparent.Color = System.Windows.Media.Colors.SkyBlue;
    
    // create a list of patch objects
    var patches = new List<Patch>();
    
    // create the multipatchBuilderEx object
    var mpb = new ArcGIS.Core.Geometry.MultipatchBuilderEx();
    
    // make each patch using the appropriate coordinates and add to the patch list
    var patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face1;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face2;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face3;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face4;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face5;
    patches.Add(patch);
    
    patch = mpb.MakePatch(PatchType.Triangles);
    patch.Coords = coords_face6;
    patches.Add(patch);
    
    patches[0].Material = materialRed;
    patches[1].Material = materialTransparent;
    patches[2].Material = materialRed;
    patches[3].Material = materialRed;
    patches[4].Material = materialRed;
    patches[5].Material = blueTransparent;
    
    // assign the patches to the multipatchBuilder
    mpb.Patches = patches;
    
    // check which patches currently contain the material
    var red = mpb.QueryPatchIndicesWithMaterial(materialRed);
    //   red should be [0, 2, 3, 4]
    
    
    // call ToGeometry to get the multipatch
    multipatch = mpb.ToGeometry() as Multipatch;
    
    Create BasicMaterial
    // Create BasicMaterial with default values
    BasicMaterial material = new BasicMaterial();
    System.Windows.Media.Color color = material.Color;         // color = Colors.Black
    System.Windows.Media.Color edgeColor = material.EdgeColor; // edgeColor = Colors.Black
    int edgeWidth = material.EdgeWidth;                        // edgeWidth = 0
    int transparency = material.TransparencyPercent;           // transparency = 0
    int shininess = material.Shininess;                        // shininess = 0
    bool cullBackFace = material.IsCullBackFace;               // cullBackFace = false
    
    // Modify the properties
    material.Color = System.Windows.Media.Colors.Red;
    material.EdgeColor = System.Windows.Media.Colors.Blue;
    material.EdgeWidth = 10;
    material.TransparencyPercent = 50;
    material.Shininess = 25;
    material.IsCullBackFace = true;
    Create BasicMaterial
    // Create BasicMaterial with default values
    BasicMaterial material = new BasicMaterial();
    System.Windows.Media.Color color = material.Color;         // color = Colors.Black
    System.Windows.Media.Color edgeColor = material.EdgeColor; // edgeColor = Colors.Black
    int edgeWidth = material.EdgeWidth;                        // edgeWidth = 0
    int transparency = material.TransparencyPercent;           // transparency = 0
    int shininess = material.Shininess;                        // shininess = 0
    bool cullBackFace = material.IsCullBackFace;               // cullBackFace = false
    
    // Modify the properties
    material.Color = System.Windows.Media.Colors.Red;
    material.EdgeColor = System.Windows.Media.Colors.Blue;
    material.EdgeWidth = 10;
    material.TransparencyPercent = 50;
    material.Shininess = 25;
    material.IsCullBackFace = true;
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also