ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMProceduralSymbolLayer Class
Members Example

In This Topic
    CIMProceduralSymbolLayer Class
    In This Topic
    Represents a procedural symbol layer which defines rendering using script-based logic to construct complex 3D objects and textures from simple geometries. Properties of the symbol are derived from a rule package (.rpk file).
    Object Model
    CIMProceduralSymbolLayer ClassCIMProceduralSymbolLayer ClassCIMProceduralSymbolLayer Class
    Syntax
    Example
    Mesh procedural texture symbol
    /// <summary>
    /// Creates Mesh procedural symbol with various textures.
    /// ![MeshProceduralTexture](https://ArcGIS.github.io/arcgis-pro-sdk/images/Symbology/mesh-procedural-texture.png)
    /// Note: The rule package used in this method can be obtained from the Sample Data included in the arcgis-pro-sdk-community-samples repository.
    /// </summary>
    {
      //Note: Run withing QueuedTask
      string _rulePkgPath = @"C:\Data\RulePackages\MultipatchTextures.rpk";
      CIMSymbolLayer[] proceduralSymbolLyr =
              {
                  new CIMProceduralSymbolLayer()
                  {
                      PrimitiveName = "Textures",
                      RulePackage = _rulePkgPath,
                      RulePackageName = "Textures",
                  }
              };
      var meshProceduralTextureSymbol = new CIMMeshSymbol()
      {
        SymbolLayers = proceduralSymbolLyr
      };
    }
    Procedural Symbol
    /// <summary>
    /// Create a procedural symbol that can be applied to a polygon building footprint layer
    /// ![ProceduralSymbol](https://ArcGIS.github.io/arcgis-pro-sdk/images/Symbology/polygon-procedural.png)        
    /// Note: The rule package used in this method can be obtained from the Sample Data included in the arcgis-pro-sdk-community-samples repository.
    /// </summary>    
    {
      //Note: Run withing QueuedTask
      string _rulePkgPath = @"C:\Data\RulePackages\Venice_2014.rpk";
      //Polygon symbol to hold the procedural layer
      var proceduralSymbol = SymbolFactory.Instance.ConstructPolygonSymbol();
    
      //Array of layers to hold a procedural symbol layer
      CIMSymbolLayer[] proceduralSymbolLyr =
            {
                new CIMProceduralSymbolLayer()
                {
                    PrimitiveName = "Venice Rule package 2014",
                    RulePackage = _rulePkgPath,
                    RulePackageName = "Venice_2014",
                }
      };
      proceduralSymbol.SymbolLayers = proceduralSymbolLyr;
      //To apply the symbol to a polygon feature layer
      //var renderer = theLayer.GetRenderer() as CIMSimpleRenderer;
      //renderer.Symbol = proceduralSymbol.MakeSymbolReference();
      //theLayer.SetRenderer(renderer);
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.CIM.CIMObject
          ArcGIS.Core.CIM.CIMSymbolLayer
             ArcGIS.Core.CIM.CIMProceduralSymbolLayer

    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also