ArcGIS Pro 3.2 API Reference Guide
ArcGIS.Core.Geometry Namespace / BasicMaterial Class / Color Property
Example

In This Topic
    Color Property (BasicMaterial)
    In This Topic
    Gets or sets the color of this material.
    Syntax
    public Color Color {get; set;}
    Public Property Color As Color
    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 3D special Multipatch shapes
    var sr = MapView.Active.Map.SpatialReference;
    
    var extent = MapView.Active.Extent;
    var center = extent.Center;
    var centerZ = MapPointBuilderEx.CreateMapPoint(center.X, center.Y, 500, sr);
    
    // cube
    multipatch = ArcGIS.Core.Geometry.MultipatchBuilderEx.CreateMultipatch(MultipatchConstructType.Cube, centerZ, 200, sr);
    // tetrahedron
    multipatch = ArcGIS.Core.Geometry.MultipatchBuilderEx.CreateMultipatch(MultipatchConstructType.Tetrahedron, centerZ, 200, sr);
    // diamond
    multipatch = ArcGIS.Core.Geometry.MultipatchBuilderEx.CreateMultipatch(MultipatchConstructType.Diamond, centerZ, 200, sr);
    // hexagon
    multipatch = ArcGIS.Core.Geometry.MultipatchBuilderEx.CreateMultipatch(MultipatchConstructType.Hexagon, centerZ, 200, sr);
    
    // sphere frame
    multipatch = ArcGIS.Core.Geometry.MultipatchBuilderEx.CreateMultipatch(MultipatchConstructType.SphereFrame, centerZ, 200, 0.8, sr);
    // sphere
    multipatch = ArcGIS.Core.Geometry.MultipatchBuilderEx.CreateMultipatch(MultipatchConstructType.Sphere, centerZ, 200, 0.8, sr);
    // cylinder
    multipatch = ArcGIS.Core.Geometry.MultipatchBuilderEx.CreateMultipatch(MultipatchConstructType.Cylinder, centerZ, 200, 0.8, sr);
    // cone
    multipatch = ArcGIS.Core.Geometry.MultipatchBuilderEx.CreateMultipatch(MultipatchConstructType.Cone, centerZ, 200, 0.8, sr);
    
    
    // use the builder to add materials or textures
    //   - create a cone with a material
    builder = new MultipatchBuilderEx(MultipatchConstructType.Cone, centerZ, 200, 0.8, sr);
    
    BasicMaterial faceMaterial = new BasicMaterial();
    faceMaterial.Color = System.Windows.Media.Color.FromRgb(255, 0, 0);
    faceMaterial.Shininess = 150;
    faceMaterial.TransparencyPercent = 50;
    faceMaterial.EdgeWidth = 20;
    
    foreach (var patch in builder.Patches)
      patch.Material = faceMaterial;
    
    multipatch = builder.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;
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also