ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMMaplexLabelPlacementProperties Class / LinePlacementMethod Property
Example

In This Topic
    LinePlacementMethod Property
    In This Topic
    Gets or sets the line placement method.
    Syntax
    Public Property LinePlacementMethod As MaplexLinePlacementMethod
    public MaplexLinePlacementMethod LinePlacementMethod {get; set;}
    Example
    Modify the Placement/Position of labels - Line geometry
    {
      // Note: call within QueuedTask.Run()
      {
        //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 
        //Check if the label engine is Maplex or standard.
        CIMGeneralPlacementProperties labelEngine =
            MapView.Active.Map.GetDefinition().GeneralPlacementProperties;
        if (labelEngine is CIMStandardGeneralPlacementProperties)
        {
          //Current labeling engine is Standard labeling engine
          var lineLablePosition = new CIMStandardLineLabelPosition
          {
            Perpendicular = true,
            Parallel = false,
            ProduceCurvedLabels = false,
            Horizontal = false,
            OnTop = true
          };
          theLabelClass.StandardLabelPlacementProperties.LineLabelPosition =
              lineLablePosition;
        }
        else //Current labeling engine is Maplex labeling engine
        {
          theLabelClass.MaplexLabelPlacementProperties.LinePlacementMethod =
                        MaplexLinePlacementMethod.CenteredPerpendicularOnLine;
          theLabelClass.MaplexLabelPlacementProperties.LineFeatureType =
                        MaplexLineFeatureType.General;
        }
        //theLabelClass.MaplexLabelPlacementProperties.LinePlacementMethod = MaplexLinePlacementMethod.CenteredPerpendicularOnLine;
        lyrDefn.LabelClasses = listLabelClasses.ToArray(); //Set the labelClasses back
        featureLayer.SetDefinition(lyrDefn); //set the layer's definition
      }
    }
    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also