# ISnapElement interface

Namespace: [Grasshopper2.UI.Snap](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.ui.snap.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public interface ISnapElement
```

Base interface for all snapping elements. Implementors: snapping elements should be immutable as results may get cached.

**Derived types:** [SnapLine](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snapline.md), [SnapLineBundle](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snaplinebundle.md), [SnapPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snappoint.md)

## Properties

- [Projection](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.isnapelement/projection.md): Gets the type of projection for this element.
- [Radius](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.isnapelement/radius.md): Gets the radius within which this element is active.

## Methods

- [Project](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.isnapelement/project.md): Project a coordinate pair onto this element.
