# IGH_UndoAction interface

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

```cs
public interface IGH_UndoAction : GH_ISerializable
```

Base interface for all undo/redo actions

**Derived types:** [GH_UndoAction](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.undo.gh-undoaction.md)

## Properties

- [ExpiresDisplay](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.undo.igh-undoaction/expiresdisplay.md): Gets the display expiration flag for this event. If True, the Rhino viewports will be redrawn once the entire undo record has been completed. If ExpiresSolution is set to true, ExpriresDisplay is implied.
- [ExpiresSolution](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.undo.igh-undoaction/expiressolution.md): Gets the solution expiration flag for this event. If True, the solution needs to be recalculated once the entire undo record has been completed.
- [State](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.undo.igh-undoaction/state.md): Gets the current state of the undo action.

## Methods

- [Redo](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.undo.igh-undoaction/redo.md): Redo the action stored in this record.
- [Undo](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.undo.igh-undoaction/undo.md): Undo the action stored in this record.

## Inherited Members

- From [GH_ISerializable](https://developer.rhino3d.com/api/gh1/type/gh-io.gh-iserializable.md): [Read](https://developer.rhino3d.com/api/gh1/type/gh-io.gh-iserializable/read.md), [Write](https://developer.rhino3d.com/api/gh1/type/gh-io.gh-iserializable/write.md)
