# command: sketching.activate-snapping
Description: Set the snapping default to 'on' for all in progress and subsequent operations. Web only.

Inputs: `None`

---
# command: sketching.activate-topology
Description: Set the topology default to 'on' for all subsequent operations. Web only.

Inputs: `None`

---
# command: sketching.add-point
Description: Adds a point to polygon, polyline, or multipoint using the selected index as the point to insert after.

Inputs: `AddPointArgs`

AddPointArgs properties:
```json
{
  "geometry": {
    "description": "The geometry to add the point to, if multiple are present in an active editing session. Not supported by VertiGIS Studio Mobile."
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  },
  "newPoint": {
    "description": "The new point to be added.",
    "isRequired": "true"
  }
}
```

---
# command: sketching.cancel
Description: Cancels the current geometry edit or capture operation. Web only.

Inputs: `None`

---
# command: sketching.deactivate-snapping
Description: Set the snapping default to 'off' for all subsequent operations. Web only.

Inputs: `None`

---
# command: sketching.deactivate-topology
Description: Set the topology default to 'off' for all subsequent operations. Web only.

Inputs: `None`

---
# command: sketching.delete
Description: If a point is supplied while a sketching or editing operation is active, the vertex at that point will be deleted from the current geometry. If no point is supplied, any active points in the session will be deleted. If there are no active points in the session, the entire geometry will be deleted.

Inputs: `( DeleteGeometryArgs )`

DeleteGeometryArgs properties:
```json
{
  "geometry": {
    "description": "The geometry to remove a point from. If this property is not specified, any active vertices will be deleted."
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  },
  "partIndex": {
    "description": "The index of the part of the geometry that the point should be removed from. Required for polyline and polygon geometry types when the geometry and pointIndex properties are defined.",
    "type": "number"
  },
  "point": {
    "description": "The point to remove from the geometry. If this property is defined, the 'pointIndex' and 'partIndex' properties are ignored. If no point nor pointIndex/partIndex are specified, any active points will be deleted. If there are no active points, the entire geometry will be deleted."
  },
  "pointIndex": {
    "description": "The index of the point that should be removed from the geometry. If this property is defined, the geometry property must also be defined.",
    "type": "number"
  }
}
```

---
# command: sketching.disable-free-scale-mode
Description: Disables free scaling while editing geometries. Web only.

Inputs: `None`

---
# command: sketching.disable-precision-mode
Description: Disables more precise inputs while editing geometries. Web only.

Inputs: `None`

---
# command: sketching.enable-free-scale-mode
Description: Enables free scaling while editing geometries. Web only.

Inputs: `None`

---
# command: sketching.enable-precision-mode
Description: Enables more precise inputs while editing geometries. Web only.

Inputs: `None`

---
# command: sketching.insert-point
Description: Inserts a point into a polygon, polyline, or multipoint at the specified index. If the partIndex is null, then the last part is used. If the pointIndex is null, then the new point is inserted at the end.

Inputs: `InsertPointArgs`

InsertPointArgs properties:
```json
{
  "geometry": {
    "description": "The geometry to add the point to, if multiple are present in an active editing session. Not supported by VertiGIS Studio Mobile."
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  },
  "newPoint": {
    "description": "The new point to be added.",
    "isRequired": "true"
  },
  "partIndex": {
    "description": "The index of the part to which the point will be added. If null, the last part will be used.",
    "type": "number"
  },
  "pointIndex": {
    "description": "The index at which the point will be added. If null, the point will be added as the last point.",
    "type": "number"
  }
}
```

---
# command: sketching.move-point
Description: Moves a point within an active sketch to a new location. Web only.

Inputs: `MovePointArgs`

MovePointArgs properties:
```json
{
  "distance": {
    "description": "An amount to move the point(s) on the X and Y axes. If the newPoint property is defined, this property will be ignored."
  },
  "geometry": {
    "description": "The geometry where the point exists, if multiple are present in an active editing session. This property is required if pointIndex and/or partIndex are defined."
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  },
  "newPoint": {
    "description": "The new point that will replace the target point within an active sketch or edit geometry. If this property is defined, the distance property will be ignored."
  },
  "partIndex": {
    "description": "The part of the geometry where the point exists. Required for polyline and polygon geometry types when the geometry and pointIndex properties are defined.",
    "type": "number"
  },
  "point": {
    "description": "The point to move, which must already exist within the active sketch. If this property is undefined and no geometry and pointIndex are specified, the active point(s) will be moved."
  },
  "pointIndex": {
    "description": "The index of the point. If this property is defined, the 'geometry' property must also be defined.",
    "type": "number"
  },
  "units": {
    "description": "The units of the above distance. Optional, will default to the units used by the measurement service associated with the map."
  }
}
```

---
# command: sketching.redo
Description: Redoes the last undone edit while editing a geometry.

Inputs: `HasMaps`

HasMaps properties:
```json
{
  "maps": {
    "description": "Map(s) to use for the command/operation."
  }
}
```

---
# command: sketching.set-active-points
Description: Switches the active point of an active sketch. Web only.

Inputs: `SetActivePointsArgs`

SetActivePointsArgs properties:
```json
{
  "geometry": {
    "description": "The geometry where the new active point exists, if multiple are present in an active editing session. This property is required if pointIndex and/or partIndex are defined."
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  },
  "partIndex": {
    "description": "The part of the geometry where the new active point exists. Required for polyline and polygon geometry types when the geometry and pointIndex properties are defined.",
    "type": "number"
  },
  "pointIndex": {
    "description": "The index of the new active point. If this property is defined, the geometry property must be defined.",
    "type": "number"
  },
  "points": {
    "anyOf": [
      {
        "$ref": "#/definitions/@arcgis.core.geometry.Point.Point"
      },
      {
        "items": {
          "$ref": "#/definitions/@arcgis.core.geometry.Point.Point"
        },
        "type": "array"
      }
    ],
    "description": "The new point(s) that will become active in the sketch or editing session. Sketching only supports one active point; if multiple are specified, then only the first will be set as active."
  }
}
```

---
# command: sketching.set-geometry-mode
Description: Sets the geometry mode of the geometry editor.

Inputs: `SetGeometryModeArgs`

SetGeometryModeArgs properties:
```json
{
  "editorGeometryMode": {
    "description": "The geometry mode to switch to. VertiGIS Studio Mobile only supports \"line\" and \"area\".",
    "enum": [
      "area",
      "circle",
      "extent",
      "line",
      "multipoint",
      "point",
      "polygon",
      "polyline",
      "square"
    ],
    "type": "string",
    "isRequired": "true"
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  }
}
```

---
# command: sketching.set-snapping-configuration
Description: Sets the global snapping configuration.

Inputs: `SetSnappingConfigurationArgs`

SetSnappingConfigurationArgs properties:
```json
{
  "config": {
    "description": "The snapping properties to set.",
    "isRequired": "true"
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  },
  "mode": {
    "description": "Whether the config should be replace, or merged. Defaults to \"merge\".",
    "enum": [
      "merge",
      "replace"
    ],
    "type": "string"
  }
}
```

---
# command: sketching.set-topology-configuration
Description: Sets the topology configuration. Web only.

Inputs: `SetTopologyConfigurationArgs`

SetTopologyConfigurationArgs properties:
```json
{
  "config": {
    "description": "The topology properties to set.",
    "isRequired": "true"
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  },
  "mode": {
    "description": "Whether the config should be replace, or merged. Defaults to \"merge\".",
    "enum": [
      "merge",
      "replace"
    ],
    "type": "string"
  }
}
```

---
# command: sketching.undo
Description: Undoes the last edit while editing a geometry.

Inputs: `HasMaps`

HasMaps properties:
```json
{
  "maps": {
    "description": "Map(s) to use for the command/operation."
  }
}
```

---
