# GH_Document.GH_UndoUtil class

Namespace: [Grasshopper.Kernel](https://developer.rhino3d.com/api/gh1/namespace/grasshopper.kernel.md) · Assembly: [Grasshopper](https://developer.rhino3d.com/api/gh1/assembly/grasshopper.md)

```cs
[EditorBrowsable(EditorBrowsableState.Never)]
public sealed class GH_Document.GH_UndoUtil
```

This class is emitted by the Undo property of a GH_Document instance.

## Methods

- [CreateAddObjectEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createaddobjectevent.md): (2 overloads) Create a new undo record for a bunch of object additions.
- [CreateAddStateEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createaddstateevent.md): Create a new undo record for a single solution state addition.
- [CreateEnabledEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createenabledevent.md): Create a new undo record for an object enabled change. This function must be called before the enabled flag is changed.
- [CreateGenericObjectEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/creategenericobjectevent.md): Create a new undo record for a generic, single object change.
- [CreateLayoutEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createlayoutevent.md): (2 overloads) Create a new undo record for a bunch of object layout changes. This function must be called before the layouts are changed.
- [CreateNickNameEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createnicknameevent.md): Create a new undo record for an object nickname change. This function must be called before the nickname is changed.
- [CreatePersistentDataEvent<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createpersistentdataevent.md): Create a new undo record for a single object persistent data change.
- [CreatePivotEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createpivotevent.md): (2 overloads) Create a new undo record for a bunch of pivot changes. This function must be called before the pivots are changed.
- [CreatePreviewEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createpreviewevent.md): Create a new undo record for an object preview change. This function must be called before the preview is changed.
- [CreateRemoveObjectEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createremoveobjectevent.md): (2 overloads) Create a new undo record for a bunch of object removals.
- [CreateRemoveStateEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createremovestateevent.md): Create a new undo record for a single solution state removal.
- [CreateReplaceStateEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createreplacestateevent.md): Create a new undo record for a single solution state addition.
- [CreateWireEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/createwireevent.md): (2 overloads) Create a new undo record for a set of Connector wire changes. This function must be called before the wires are changed.
- [MergeRecords](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/mergerecords.md): Attempt to merge the N most recent records into one. The name of the merged record will be identical to the name of the oldest record.
- [RecordAddObjectEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordaddobjectevent.md): (2 overloads) Create and Record a new ObjectAdded undo record.
- [RecordAddStateEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordaddstateevent.md): Create and Record a new CreateAddStateEvent undo record.
- [RecordEnabledEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordenabledevent.md): Create and Record a new EnabledChanged undo record.
- [RecordEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordevent.md): (4 overloads) Add a new record to the undo stack of the owner document.
- [RecordGenericObjectEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordgenericobjectevent.md): Create and Record a new ObjectChanged undo record.
- [RecordLayoutEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordlayoutevent.md): (2 overloads) Create and Record a new LayoutChanged undo record.
- [RecordNickNameEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordnicknameevent.md): Create and Record a new NickNameChanged undo record.
- [RecordPersistentDataEvent<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordpersistentdataevent.md): Create and Record a new PersistentDataChanged undo record.
- [RecordPivotEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordpivotevent.md): (2 overloads) Create and Record a new PivotChanged undo record.
- [RecordPreviewEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordpreviewevent.md): Create and Record a new PreviewChanged undo record.
- [RecordRemoveObjectEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordremoveobjectevent.md): (2 overloads) Create and Record a new ObjectRemoved undo record.
- [RecordRemoveStateEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordremovestateevent.md): Create and Record a new CreateRemoveStateEvent undo record.
- [RecordReplaceStateEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordreplacestateevent.md): Create and Record a new CreateReplaceStateEvent undo record.
- [RecordWireEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.gh-undoutil/recordwireevent.md): (2 overloads) Create and Record a new WiresChanged undo record.
