ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Core Namespace / ApplicationOptions Class / EditingOptions Property
Example

In This Topic
    EditingOptions Property
    In This Topic
    Gets the application editing options.
    Syntax
    Public Shared ReadOnly Property EditingOptions As EditingOptions
    public static EditingOptions EditingOptions {get;}
    Example
    Get/Set Editing Options
    {
      //toggle, switch Editing option values
      var options = ApplicationOptions.EditingOptions;
    
      options.EnforceAttributeValidation = !options.EnforceAttributeValidation;
      options.WarnOnSubtypeChange = !options.WarnOnSubtypeChange;
      options.InitializeDefaultValuesOnSubtypeChange = !options.InitializeDefaultValuesOnSubtypeChange;
      options.UncommitedAttributeEdits = (options.UncommitedAttributeEdits ==
        UncommitedEditMode.AlwaysPrompt) ? UncommitedEditMode.Apply : UncommitedEditMode.AlwaysPrompt;
    
      options.StretchGeometry = !options.StretchGeometry;
      options.StretchTopology = !options.StretchTopology;
      options.UncommitedGeometryEdits = (options.UncommitedGeometryEdits ==
        UncommitedEditMode.AlwaysPrompt) ? UncommitedEditMode.Apply : UncommitedEditMode.AlwaysPrompt;
    
      options.ActivateMoveAfterPaste = !options.ActivateMoveAfterPaste;
      options.ShowFeatureSketchSymbology = !options.ShowFeatureSketchSymbology;
      options.FinishSketchOnDoubleClick = !options.FinishSketchOnDoubleClick;
      options.AllowVertexEditingWhileSketching = !options.AllowVertexEditingWhileSketching;
      options.ShowDeleteDialog = !options.ShowDeleteDialog;
      options.EnableStereoEscape = !options.EnableStereoEscape;
      options.DragSketch = !options.DragSketch;
      options.ShowDynamicConstraints = !options.ShowDynamicConstraints;
      options.IsDeflectionDefaultDirectionConstraint =
        !options.IsDeflectionDefaultDirectionConstraint;
      options.IsDirectionDefaultInputConstraint = !options.IsDirectionDefaultInputConstraint;
      options.ShowEditingToolbar = !options.ShowEditingToolbar;
      options.ToolbarPosition = (options.ToolbarPosition == ToolbarPosition.Bottom) ?
                ToolbarPosition.Right : ToolbarPosition.Bottom;
      options.ToolbarSize = (options.ToolbarSize == ToolbarSize.Medium) ?
                ToolbarSize.Small : ToolbarSize.Medium;
      options.MagnifyToolbar = !options.MagnifyToolbar;
    
      options.EnableEditingFromEditTab = !options.EnableEditingFromEditTab;
      options.AutomaticallySaveEdits = !options.AutomaticallySaveEdits;
      options.AutoSaveByTime = !options.AutoSaveByTime;
      options.SaveEditsInterval = (options.AutomaticallySaveEdits) ? 20 : 10;
      options.SaveEditsOperations = (options.AutomaticallySaveEdits) ? 60 : 30;
      options.SaveEditsOnProjectSave = !options.SaveEditsOnProjectSave;
      options.ShowSaveEditsDialog = !options.ShowSaveEditsDialog;
      options.ShowDiscardEditsDialog = !options.ShowDiscardEditsDialog;
      options.DeactivateToolOnSaveOrDiscard = !options.DeactivateToolOnSaveOrDiscard;
      options.NewLayersEditable = !options.NewLayersEditable;
    }
    Get/Set Editing Annotation Options
    {
      var eOptions = ApplicationOptions.EditingOptions;
    
      var followLinkedLines = eOptions.AutomaticallyFollowLinkedLineFeatures;
      var followLinedPolygons = eOptions.AutomaticallyFollowLinkedPolygonFeatures;
      var usePlacementProps = eOptions.UseAnnotationPlacementProperties;
      var followMode = eOptions.AnnotationFollowMode;
      var placementMode = eOptions.AnnotationPlacementMode;
    
    
      eOptions.AnnotationFollowMode = AnnotationFollowMode.Parallel;
      eOptions.AnnotationPlacementMode = AnnotationPlacementMode.Left;
    }
    Get Sketch Vertex Symbology Options
    {
      var options = ApplicationOptions.EditingOptions;
      await QueuedTask.Run(() =>
      {
        //There are 4 vertex symbol settings - selected, unselected and the
        //current vertex selected and unselected.
        var reg_select = options.GetVertexSymbolOptions(VertexSymbolType.RegularSelected);
        var reg_unsel = options.GetVertexSymbolOptions(VertexSymbolType.RegularUnselected);
        var curr_sel = options.GetVertexSymbolOptions(VertexSymbolType.CurrentSelected);
        var curr_unsel = options.GetVertexSymbolOptions(VertexSymbolType.CurrentUnselected);
    
        //to convert the options to a symbol use
        //GetPointSymbol
        var reg_sel_pt_symbol = reg_select.GetPointSymbol();
        //ditto for reg_unsel, curr_sel, curr_unsel
      });
    }
    Get Sketch Segment Symbology Options
    {
      var options = ApplicationOptions.EditingOptions;
    
      //var options = ApplicationOptions.EditingOptions;
      await QueuedTask.Run(() =>
      {
        var seg_options = options.GetSegmentSymbolOptions();
        //to convert the options to a symbol use
        //SymbolFactory. Note: this is approximate....sketch isn't using the
        //CIM directly for segments
        var layers = new List<CIMSymbolLayer>();
        var stroke0 = SymbolFactory.Instance.ConstructStroke(seg_options.PrimaryColor,
          seg_options.Width, SimpleLineStyle.Dash);
        layers.Add(stroke0);
        if (seg_options.HasSecondaryColor)
        {
          var stroke1 = SymbolFactory.Instance.ConstructStroke(
            seg_options.SecondaryColor, seg_options.Width, SimpleLineStyle.Solid);
          layers.Add(stroke1);
        }
        //segment symbology only
        var sketch_line = new CIMLineSymbol()
        {
          SymbolLayers = layers.ToArray()
        };
      });
    }
    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also