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

In This Topic
    CIMMaplexDictionary Class
    In This Topic
    Represents a Maplex dictionary.
    Object Model
    CIMMaplexDictionary ClassCIMMaplexDictionary ClassCIMMaplexDictionary Class
    Syntax
    Example
    Create Abbreviation Dictionary in the Map Definition to a layer
    {
        //Get the map's definition
        //Note: needs to be called on the MCT
        var mapDefn = MapView.Active.Map.GetDefinition();
        //Get the Map's Maplex labelling engine properties
        var mapDefnPlacementProps = mapDefn.GeneralPlacementProperties as CIMMaplexGeneralPlacementProperties;
    
        //Define the abbreviations we need in an array            
        List<CIMMaplexDictionaryEntry> abbreviationDictionary = new List<CIMMaplexDictionaryEntry>
    {
        new CIMMaplexDictionaryEntry {
        Abbreviation = "Hts",
        Text = "Heights",
        MaplexAbbreviationType = MaplexAbbreviationType.Ending
    
     },
        new CIMMaplexDictionaryEntry
        {
            Abbreviation = "Ct",
            Text = "Text",
            MaplexAbbreviationType = MaplexAbbreviationType.Ending
    
        }
        //etc
    };
        //The Maplex Dictionary - can hold multiple Abbreviation collections
        var maplexDictionary = new List<CIMMaplexDictionary>
    {
        new CIMMaplexDictionary {
            Name = "NameEndingsAbbreviations",
            MaplexDictionary = abbreviationDictionary.ToArray()
        }
    
    };
        //Set the Maplex Label Engine Dictionary property to the Maplex Dictionary collection created above.
        mapDefnPlacementProps.Dictionaries = maplexDictionary.ToArray();
        //Set the Map definition 
        MapView.Active.Map.SetDefinition(mapDefn);
    }
    Apply Abbreviation Dictionary in the Map Definition to a layer
    {
        //Creates Abbreviation dictionary and adds to Map Definition                                
        //Refer to the " Create Abbreviation Dictionary in the Map Definition to a layer" snippet above
        //Get the layer's definition
        //Note: needs to be called on the MCT
        var lyrDefn = featureLayer.GetDefinition() as CIMFeatureLayer;
        //Get the label classes - we need the first one
        var listLabelClasses = lyrDefn.LabelClasses.ToList();
        var theLabelClass = listLabelClasses.FirstOrDefault();
        //Modify label Placement props to use abbreviation dictionary 
        CIMGeneralPlacementProperties labelEngine = MapView.Active.Map.GetDefinition().GeneralPlacementProperties;
        //Get the dictionary from the map definition
        theLabelClass.MaplexLabelPlacementProperties.DictionaryName = "NameEndingsAbbreviations";
        theLabelClass.MaplexLabelPlacementProperties.CanAbbreviateLabel = true;
        theLabelClass.MaplexLabelPlacementProperties.CanStackLabel = false;
        //Set the labelClasses back
        lyrDefn.LabelClasses = listLabelClasses.ToArray();
        //set the layer's definition
        featureLayer.SetDefinition(lyrDefn);
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.CIM.CIMObject
          ArcGIS.Core.CIM.CIMMaplexDictionary

    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also