ArcGIS Pro 3.7 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 Property Color As Color
    public Color Color {get; set;}
    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 patchesList = 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;
      patchesList.Add(patch);
    
      patch = mpb.MakePatch(PatchType.Triangles);
      patch.Coords = coords_face2;
      patchesList.Add(patch);
    
      patch = mpb.MakePatch(PatchType.Triangles);
      patch.Coords = coords_face3;
      patchesList.Add(patch);
    
      patch = mpb.MakePatch(PatchType.Triangles);
      patch.Coords = coords_face4;
      patchesList.Add(patch);
    
      patch = mpb.MakePatch(PatchType.Triangles);
      patch.Coords = coords_face5;
      patchesList.Add(patch);
    
      patch = mpb.MakePatch(PatchType.Triangles);
      patch.Coords = coords_face6;
      patchesList.Add(patch);
    
      patchesList[0].Material = materialRed;
      patchesList[1].Material = materialTransparent;
      patchesList[2].Material = materialRed;
      patchesList[3].Material = materialRed;
      patchesList[4].Material = materialRed;
      patchesList[5].Material = blueTransparent;
    
      // assign the patches to the multipatchBuilder
      mpb.Patches = patchesList;
    
      // 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 the multipatchBuilderEx object
      var builder = new ArcGIS.Core.Geometry.MultipatchBuilderEx(multipatch);
      //   - 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 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also