ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / LayerDocument Class / GetCIMLayerDocument Method
Example

In This Topic
    GetCIMLayerDocument Method
    In This Topic
    Syntax
    Public Function GetCIMLayerDocument() As CIMLayerDocument
    public CIMLayerDocument GetCIMLayerDocument()

    Return Value

    A ArcGIS.Core.CIMLayerDocument.
    Example
    Create FeatureLayer and add to Map using LayerCreationParams
    {
        //Get the LayerDocument from a lyrx file
        var layerDoc = new LayerDocument(@"E:\Data\SDK\Default2DPointSymbols.lyrx");
        //Get the CIMLayerDocument from the LayerDocument and use it to create LayerCreationParams
        var createParams = new LayerCreationParams(layerDoc.GetCIMLayerDocument());
        //Create a FeatureLayer using the LayerCreationParams
        //Note: Needs QueuedTask to run
        LayerFactory.Instance.CreateLayer<FeatureLayer>(createParams, MapView.Active.Map);
    }
    Create layer from a lyrx file
    {
        //Note: Call within QueuedTask.Run()
        var lyrDocFromLyrxFile = new LayerDocument(@"d:\data\cities.lyrx");
        var cimLyrDoc = lyrDocFromLyrxFile.GetCIMLayerDocument();
    
        //modifying its renderer symbol to red
        var cimSimpleRenderer = ((CIMFeatureLayer)cimLyrDoc.LayerDefinitions[0]).Renderer as CIMSimpleRenderer;
        cimSimpleRenderer?.Symbol.Symbol.SetColor(new CIMRGBColor() { R = 255 });
    
        //optionally save the updates out as a file
        lyrDocFromLyrxFile.Save(@"c:\data\cities_red.lyrx");
    
        //get a json representation of the layer document and you want store away...
        var aJSONString = lyrDocFromLyrxFile.AsJson();
    
        //... and load it back when needed
        lyrDocFromLyrxFile.Load(aJSONString);
        cimLyrDoc = lyrDocFromLyrxFile.GetCIMLayerDocument();
    
        //create a layer and add it to a map
        var lcp = new LayerCreationParams(cimLyrDoc);
        var lyr = LayerFactory.Instance.CreateLayer<FeatureLayer>(lcp, map);
    }
    Apply Symbology to a layer from a Layer file
    {
        IEnumerable<FeatureLayer> featureLayers = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>()
          .Where(l => l.ShapeType == esriGeometryType.esriGeometryPoint);
        var layerFile = @"C:\Data\SDK\UniqueValuePointLayer.lyrx";
        foreach (var featureLayerToSymbolize in featureLayers)
        {
            //Get the Layer Document from the lyrx file
            var lyrDocFromLyrxFile = new LayerDocument(layerFile);
            var cimLyrDoc = lyrDocFromLyrxFile.GetCIMLayerDocument();
    
            //Get the renderer from the layer file
            var rendererFromLayerFile = ((CIMFeatureLayer)cimLyrDoc.LayerDefinitions[0]).Renderer as CIMUniqueValueRenderer;
    
            //Apply the renderer to the feature layer
            //Note: If working with a raster layer, use the SetColorizer method.
            featureLayerToSymbolize?.SetRenderer(rendererFromLayerFile);
        }
    }
    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also