ArcGIS Pro 3.7 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 Overloads Shared Sub SetLayerSnapModes( _
       ByVal layer As Layer, _
       ByVal setAll As Boolean _
    ) 
    public static void SetLayerSnapModes( 
       Layer layer,
       bool setAll
    )

    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
    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