ArcGIS Pro 3.1 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / Snapping Class / SetLayerSnapModes Method / SetLayerSnapModes(Layer,Boolean) Method
The layer to set the snap modes on.
Set all the snap modes on(true) or off(false).
Example

In This Topic
    SetLayerSnapModes(Layer,Boolean) Method
    In This Topic
    Sets all snap modes on a layer to on(true) or off(false).
    Syntax
    public static void SetLayerSnapModes( 
       Layer layer,
       bool setAll
    )
    Public Overloads Shared Sub SetLayerSnapModes( _
       ByVal layer As Layer, _
       ByVal setAll As Boolean _
    ) 

    Parameters

    layer
    The layer to set the snap modes on.
    setAll
    Set all the snap modes on(true) or off(false).
    Example
    Configure Snapping - LayerSnapModes
    layerList = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>();
    
    // configure by layer
    foreach (var layer in layerList)
    {
      // find the state of the snapModes for the layer
      var lsm = ArcGIS.Desktop.Mapping.Snapping.GetLayerSnapModes(layer);
      bool vertexOn = lsm.Vertex;
      // or use 
      vertexOn = lsm.GetSnapMode(SnapMode.Vertex);
    
      bool edgeOn = lsm.Edge;
      // or use 
      edgeOn = lsm.GetSnapMode(SnapMode.Edge);
    
      bool endOn = lsm.End;
      // or use 
      endOn = lsm.GetSnapMode(SnapMode.End);
    
      // update a few snapModes 
      //   turn Vertex off
      lsm.SetSnapMode(SnapMode.Vertex, false);
      // intersections on
      lsm.SetSnapMode(SnapMode.Intersection, true);
    
      // and set back to the layer
      ArcGIS.Desktop.Mapping.Snapping.SetLayerSnapModes(layer, lsm);
    
    
      // assign a single snap mode at once
      ArcGIS.Desktop.Mapping.Snapping.SetLayerSnapModes(layer, SnapMode.Vertex, false);
    
    
      // turn ALL snapModes on
      ArcGIS.Desktop.Mapping.Snapping.SetLayerSnapModes(layer, true);
      // turn ALL snapModes off
      ArcGIS.Desktop.Mapping.Snapping.SetLayerSnapModes(layer, false);
    }
    
    
    // configure for a set of layers
    
    // set Vertex, edge, end on for a set of layers, other snapModes false
    var vee = new LayerSnapModes(false);
    vee.Vertex = true;
    vee.Edge = true;
    vee.End = true;
    ArcGIS.Desktop.Mapping.Snapping.SetLayerSnapModes(layerList, vee);
    
    
    // ensure intersection is on for a set of layers without changing any other snapModes
    
    // get the layer snapModes for the set of layers
    var dictLSM = ArcGIS.Desktop.Mapping.Snapping.GetLayerSnapModes(layerList);
    foreach (var layer in dictLSM.Keys)
    {
      var lsm = dictLSM[layer];
      lsm.Intersection = true;
    }
    ArcGIS.Desktop.Mapping.Snapping.SetLayerSnapModes(dictLSM);
    
    
    // set all snapModes off for a list of layers
    ArcGIS.Desktop.Mapping.Snapping.SetLayerSnapModes(layerList, false);
    
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.0 or higher.
    See Also