ArcGIS Pro 3.7 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 Function GetSnapMode( _
       ByVal snapMode As SnapMode _
    ) As Boolean
    public bool GetSnapMode( 
       SnapMode snapMode
    )

    Parameters

    snapMode
    Example
    Configure Snapping - LayerSnapModes
    var featureLayerList = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>();
    // configure layer snap modes - must run on the MCT
    await QueuedTask.Run(() =>
    {
      // configure by layer
      foreach (var layer in featureLayerList)
      {
        // find the state of the snapModes for the layer
        var lsm = 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
        Snapping.SetLayerSnapModes(layer, lsm);
        // assign a single snap mode at once
        Snapping.SetLayerSnapModes(layer, SnapMode.Vertex, false);
        // turn ALL snapModes on
        Snapping.SetLayerSnapModes(layer, true);
        // turn ALL snapModes off
        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)
      {
        Vertex = true,
        Edge = true,
        End = true
      };
      Snapping.SetLayerSnapModes(featureLayerList, 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 = Snapping.GetLayerSnapModes(featureLayerList);
      foreach (var layer in dictLSM.Keys)
      {
        var lsm = dictLSM[layer];
        lsm.Intersection = true;
      }
      Snapping.SetLayerSnapModes(dictLSM);
      // set all snapModes off for a list of layers
      Snapping.SetLayerSnapModes(featureLayerList, false);
    });
    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also