ArcGIS Pro 3.2 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / LayerSnapModes Class / GetSnapMode Method
Example

In This Topic
    GetSnapMode Method (LayerSnapModes)
    In This Topic
    Gets the state of a single SnapMode.
    Syntax
    public bool GetSnapMode( 
       SnapMode snapMode
    )
    Public Function GetSnapMode( _
       ByVal snapMode As SnapMode _
    ) As Boolean

    Parameters

    snapMode
    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 or higher.
    See Also