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

CIMProceduralSymbolLayer Class
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
Snippet Mesh procedural texture symbol
/// <summary>
/// Creates Mesh procedural symbol with various textures.
/// ![MeshProceduralTexture](http://Esri.github.io/arcgis-pro-sdk/images/Symbology/mesh-procedural-texture.png)
/// </summary>
/// <remarks>Note: The rule package used in this method can be obtained from the Sample Data included in the arcgis-pro-sdk-community-samples repository.</remarks>
/// <returns></returns>
private static readonly string _rulePkgPath = @"C:\Data\RulePackages\MultipatchTextures.rpk";
public static Task<CIMMeshSymbol> CreateProceduralMeshSymbolAsync()
{
    return QueuedTask.Run<CIMMeshSymbol>(() =>
    {                  
        CIMSymbolLayer[] proceduralSymbolLyr =
        {
            new CIMProceduralSymbolLayer()
            {
                PrimitiveName = "Textures",
                RulePackage = _rulePkgPath,
                RulePackageName = "Textures",
            }
        };
        var myMeshSymbol = new CIMMeshSymbol()
        {
            SymbolLayers = proceduralSymbolLyr
        };

        return myMeshSymbol;
    });
}
Snippet Procedural Symbol
/// <summary>
/// Create a procedural symbol that can be applied to a polygon building footprint layer
/// ![ProceduralSymbol](http://Esri.github.io/arcgis-pro-sdk/images/Symbology/polygon-procedural.png)        
/// </summary>    
/// <remarks>Note: The rule package used in this method can be obtained from the Sample Data included in the arcgis-pro-sdk-community-samples repository.</remarks>
private static readonly string _rulePkgPath = @"C:\Data\RulePackages\Venice_2014.rpk";
public static Task<CIMPolygonSymbol> CreateProceduralPolygonSymbolAsync()
{
  return QueuedTask.Run<CIMPolygonSymbol>(() =>
  {
    //Polygon symbol to hold the procedural layer
    var myPolygonSymbol = 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",
                }
      };
    myPolygonSymbol.SymbolLayers = proceduralSymbolLyr;
    return myPolygonSymbol;
  });
}
Inheritance Hierarchy

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

Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also