# Grasshopper2.UI.Snap namespace

Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

## Interfaces

- [ISnapElement](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.isnapelement.md): Base interface for all snapping elements. Implementors: snapping elements should be immutable as results may get cached.

## Classes

- [SnapLine](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snapline.md): Implements ISnapElement for individual lines.
- [SnapLineBundle](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snaplinebundle.md): Implements ISnapElement for an infinite collection of repeating lines.
- [SnapPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snappoint.md): Implement ISnapElement for individual points.
- [SnapSpace](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snapspace.md): Represents a collection of snapping elements.

## Delegates

- [SnapNumeric](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snapnumeric.md): Snap a number to the nearest allowed number. This is only useful for one-dimensional snapping behaviour, or at least where snapping is completely unrelated in the dimensions involved.

## Enums

- [SnapProjection](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.snap.snapprojection.md): Enumerates the possible types of projection a snapping element may have.
