# PropertyAction class

Namespace: [Grasshopper2.Undo.Actions](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.undo.actions.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
[IoId("00000000-a35f-4afb-bb7a-9acc7e91e053")]
[UiName("Custom Property")]
public sealed class PropertyAction : ObjectAction
```

An undo action for setting and unsetting simple properties or fields on objects. Here, 'simple' means some of the primitives ([bool](https://learn.microsoft.com/dotnet/api/system.boolean), [int](https://learn.microsoft.com/dotnet/api/system.int32), [float](https://learn.microsoft.com/dotnet/api/system.single), [double](https://learn.microsoft.com/dotnet/api/system.double), [string](https://learn.microsoft.com/dotnet/api/system.string)), some of the eto core types (`Color`, `Size`, `SizeF`, `Point`, `PointF`, `Rectangle`, `RectangleF`), and anything which implements [IStorable](https://developer.rhino3d.com/api/gh2/type/grasshopperio.istorable.md). Furthermore any property which is an enum will be stored and restored using 32-bit integer values.

## Constructors

- [PropertyAction](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/ctor.md): (2 overloads)

## Properties

- [AutoExtend](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/autoextend.md): Gets whether consecutive instances of this undo action extend each other.
- [Name](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/name.md): Name of property to get or set.

## Methods

- [Extends](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/extends.md)
- [PerformRedoInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/performredointernal.md)
- [PerformUndoInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/performundointernal.md)
- [PrepareRedoInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/prepareredointernal.md)
- [PrepareUndoInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/prepareundointernal.md)
- [Store](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.propertyaction/store.md)

## Inherited Members

- From [ObjectAction](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.objectaction.md): [Id](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.objectaction/id.md), [PerformRedoInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.objectaction/performredointernal.md), [PerformUndoInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.objectaction/performundointernal.md), [PrepareRedoInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.objectaction/prepareredointernal.md), [PrepareUndoInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.actions.objectaction/prepareundointernal.md)
- From [Action](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.action.md): [Response](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.action/response.md), [State](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.action/state.md), [PerformRedo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.action/performredo.md), [PerformUndo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.action/performundo.md), [PrepareRedo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.action/prepareredo.md), [PrepareUndo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.undo.action/prepareundo.md)
