# Rhino.DocObjects.Custom namespace

Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

## Classes

- [ClassIdAttribute](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.classidattribute.md): Useful for legacy UserData
- [CustomBrepObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.custombrepobject.md)
- [CustomCurveObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.customcurveobject.md)
- [CustomGripObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.customgripobject.md)
- [CustomMeshObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.custommeshobject.md)
- [CustomObjectGrips](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.customobjectgrips.md)
- [CustomPointObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.custompointobject.md)
- [GripsDrawEventArgs](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.gripsdraweventargs.md)
- [GripStatus](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.gripstatus.md)
- [UnknownUserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.unknownuserdata.md): Represents user data with unknown origin.
- [UserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.userdata.md): Provides a base class for custom classes of information which may be attached to geometry or attribute classes.
- [UserDataList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.userdatalist.md): Represents a collection of user data.
- [UserDataListEnumerator](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.userdatalistenumerator.md): Enumerator for UserDataList
- [UserDictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.userdictionary.md): Defines the storage data class for a [user dictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.collections.archivabledictionary.md).

## Enums

- [ObjectGripsType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.objectgripstype.md): The kind of grips a [CustomObjectGrips](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.customobjectgrips.md) presents. Several Rhino commands dispatch on this, so claiming a control point type is what lets a plug-in's grips reach code paths otherwise reserved for Rhino's own curve and surface control points.

## Delegates

- [TurnOnGripsEventHandler](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.custom.turnongripseventhandler.md)
