public CIMGeneralPlacementProperties GeneralPlacementProperties {get; set;}
Public Property GeneralPlacementProperties As CIMGeneralPlacementProperties
public CIMGeneralPlacementProperties GeneralPlacementProperties {get; set;}
Public Property GeneralPlacementProperties As CIMGeneralPlacementProperties
public static void CreateDictionary() { //Get the map's definition 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); } private static void ApplyDictionary() { var featureLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>().First(); QueuedTask.Run(() => { //Creates Abbreviation dictionary and adds to Map Definition CreateDictionary(); //Get the layer's definition 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; 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); }); }
//Note: call within QueuedTask.Run() //Get the active map's definition - CIMMap. var cimMap = MapView.Active.Map.GetDefinition(); //Get the labeling engine from the map definition CIMGeneralPlacementProperties labelEngine = cimMap.GeneralPlacementProperties;
//Note: call within QueuedTask.Run() //Get the active map's definition - CIMMap. var cimMap = MapView.Active.Map.GetDefinition(); //Get the labeling engine from the map definition var cimGeneralPlacement = cimMap.GeneralPlacementProperties; if (cimGeneralPlacement is CIMMaplexGeneralPlacementProperties) { //Current labeling engine is Maplex labeling engine //Create a new standard label engine properties var cimStandardPlacementProperties = new CIMStandardGeneralPlacementProperties(); //Set the CIMMap's GeneralPlacementProperties to the new label engine cimMap.GeneralPlacementProperties = cimStandardPlacementProperties; } else { //Current labeling engine is Standard labeling engine //Create a new Maplex label engine properties var cimMaplexGeneralPlacementProperties = new CIMMaplexGeneralPlacementProperties(); //Set the CIMMap's GeneralPlacementProperties to the new label engine cimMap.GeneralPlacementProperties = cimMaplexGeneralPlacementProperties; } //Set the map's definition MapView.Active.Map.SetDefinition(cimMap);
Target Platforms: Windows 11, Windows 10