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

In This Topic
    CIMLayerOverrideSet Class
    In This Topic
    Represents a layer property override set.
    Object Model
    CIMLayerOverrideSet ClassCIMLayerOverrideSet ClassCIMLayerOverrideSet Class
    Syntax
    Example
    Set Layer Visibility Overrides in MapFrames
    {
      //Note: Run this code within a QueuedTask
      //Get the USA States map from the project
      //This map has both States and Cities layers
      var usaMap = Project.Current.GetItems<MapProjectItem>().FirstOrDefault(m => m.Name == "USA States")?.GetMap();
    
      //The layout has two map frames - one for States and one for Cities
      //We will set layer visibility overrides on each map frame, so that only the relevant layer is visible in each map frame
      // Get the States map frame in the layout
      var statesMapFrame = layout.Elements.OfType<MapFrame>().FirstOrDefault(n => n.Name == "States");
      //Get the map frame definition
      var mapFrameDefinition = statesMapFrame.GetDefinition() as CIMMapFrame;
      //Enable layer visibility overrides for the states map frame
      mapFrameDefinition.OverrideLayerVisibility = true;
      //Create layer override sets
      //Set States layer to visible and Cities layer to not visible
      var layerOverrideSets = new List<CIMLayerOverrideSet>
              {
                  new CIMLayerOverrideSet
                  {
                      LayerURI = usaMap.Layers.FirstOrDefault(l => l.Name == "States")?.URI,
                      Value = true
                  },
                  new CIMLayerOverrideSet {
                      LayerURI = usaMap.Layers.FirstOrDefault(l => l.Name == "Cities")?.URI,
                      Value = false
                  }
              };
      //Assign the layer override sets to the map frame definition
      mapFrameDefinition.LayerVisibilityOverrides = layerOverrideSets.ToArray();
      //Set the modified definition back to the map frame
      statesMapFrame.SetDefinition(mapFrameDefinition);
    
      //Next, get the cities map frame in the layout
      var citiesMapFrame = layout.Elements.OfType<MapFrame>().FirstOrDefault(n => n.Name == "Cities");
      //Get the map frame definition for the cities map frame
      var mapFrameDefinitionCities = citiesMapFrame.GetDefinition() as CIMMapFrame;
      //Enable layer visibility overrides for the cities map frame
      mapFrameDefinitionCities.OverrideLayerVisibility = true;
      //Create layer override sets for the cities map frame
      //Set Cities layer to visible and States layer to not visible
      var layerOverrideSetsCities = new List<CIMLayerOverrideSet>
              {
                  new CIMLayerOverrideSet
                  {
                      LayerURI = usaMap.Layers.FirstOrDefault(l => l.Name == "States")?.URI,
                      Value = false
                  },
                  new CIMLayerOverrideSet {
                      LayerURI = usaMap.Layers.FirstOrDefault(l => l.Name == "Cities")?.URI,
                      Value = true
                  }
              };
      //Assign the layer override sets to the cities map frame definition
      mapFrameDefinitionCities.LayerVisibilityOverrides = layerOverrideSetsCities.ToArray();
      //Set the modified definition back to the cities map frame
      citiesMapFrame.SetDefinition(mapFrameDefinitionCities);
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.CIM.CIMObject
          ArcGIS.Core.CIM.CIMLayerOverrideSet

    Requirements

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

    ArcGIS Pro version: 3.5 or higher.
    See Also