# GH_ActiveObject 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
public abstract class GH_ActiveObject : GH_DocumentObject, IGH_ActiveObject
```

Basic implementation of IGH_ActiveObject interface. Derive from this class rather than implementing IGH_ActiveObject to make your life easier.

**Derived types:** [GH_Component](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component.md), [GH_Param<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-param-1.md), [GH_Timer](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-timer.md)

## Constructors

- [GH_ActiveObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/ctor.md): (2 overloads)

## Properties

- [IconCapableUI](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/iconcapableui.md): By default the NickName menu item supports the Icon Mode override toggle. If your UI is not capable of displaying icons, then override this property and return False.
- [IsDataProvider](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/isdataprovider.md): Returns a boolean indicating whether or not the current object can seed data.
- [Locked](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/locked.md): Gets or sets the enabled flag of this object. Disabled objects are ignored during solutions.
- [MutableNickName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/mutablenickname.md): Gets or sets a value that enables Nick name changes through the menu. The default is TRUE.
- [Phase](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/phase.md): Gets or sets the solution phase this object is currenly in.
- [ProcessorTime](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/processortime.md): Gets the most recent processor time profiler value.
- [RuntimeMessageLevel](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/runtimemessagelevel.md): Returns the worst case flag for the current object If the object contains at least 1 error, the result is Error. If the object contains at least 1 warning, the result is Warning. If the object contains at least 1 message, the result is Remark. If the object contains no errors, no warnings and no messages, the result is Blank.

## Methods

- [AddRuntimeMessage](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/addruntimemessage.md): Add a new message to this object. Valid message type flags are Warning and Error. If the Message string is empty or zero-length no message is added.
- [AppendAdditionalMenuItems](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/appendadditionalmenuitems.md): Override this function if you want to add additional items to the object context menu. Default items already included in the menu toolstrip are: Name 2. Preview 3. Warnings 4. Errors 5. [additional items will be inserted here] 6. Help
- [AppendMenuItems](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/appendmenuitems.md): This function is called when a context menu is about to be displayed. Override it to set custom items. GH_ActiveObject will already populate the menu with default items, if you merely wish to insert object-specific menu item, consider overriding AppendAdditionalMenuItems instead.
- [ClearData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/cleardata.md): This function is called whenever the object needs to clear all solution data. Override this function if you need to perform custom clensing.
- [ClearRuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/clearruntimemessages.md): Destroy all warning and error lists
- [CollectData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/collectdata.md): This function is called whenever the object is required to collect all data. Either from Persistent records, from source params or whatever.
- [ComputeData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/computedata.md): This function is called whenever the object is required to generate new data.
- [DependsOn](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/dependson.md): Returns a boolean indicating whether or not the current object somehow inherits from the PotenialSource object
- [ExpireDownStreamObjects](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/expiredownstreamobjects.md): This function is called whenever the solution for this object expires. Override this function if objects depend on you.
- [ExpireSolution](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/expiresolution.md): Informs the document that owns this object that the solution has expired. The current object will be set to BLANK as a result. This method is recursive, it will also expire any and all objects which depend on this object. If you want a less destructive expiration, consider using ClearData(). If this object is already Blank, you should consider not expiring it.
- [Menu_AppendBakeItem](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendbakeitem.md): Append the default Bake menu item.
- [Menu_AppendEnableItem](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendenableitem.md): Append the default Enable/Disable menu item.
- [Menu_AppendPreviewItem](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendpreviewitem.md): Append the default Show/Hide preview menu item.
- [Menu_AppendRuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendruntimemessages.md): Append the default warnings and errors menu items.
- [Menu_AppendWarningsAndErrors](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendwarningsanderrors.md): (obsolete) This method is obsolete and has been replaced with Menu_AppendRuntimeMessages().
- [Read](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/read.md)
- [RegisterRemoteIDs](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/registerremoteids.md): Override this function if you want object changes in the Rhino document to trigger a new solution.
- [RuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/runtimemessages.md): Gets the list of cached runtime messages that were recorded during solver-time processes.
- [SDKCompliancy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/sdkcompliancy.md): Test whether this object is compliant with a given Rhino version.
- [Write](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/write.md)

## Inherited Members

- From [GH_DocumentObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject.md): [m_attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/m-attributes.md), [Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/attributes.md), [ComponentGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/componentguid.md), [Exposure](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/exposure.md), [Icon](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/icon.md), [IconDisplayMode](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/icondisplaymode.md), [Icon_24x24](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/icon-24x24.md), [Icon_24x24_Locked](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/icon-24x24-locked.md), [Internal_Icon_24x24](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/internal-icon-24x24.md), [Obsolete](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/obsolete.md), [AttributesChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/attributeschanged.md), [DisplayExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/displayexpired.md), [ObjectChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/objectchanged.md), [PingDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/pingdocument.md), [PreviewExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/previewexpired.md), [SolutionExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/solutionexpired.md), [AddedToDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/addedtodocument.md), [CreateAttributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/createattributes.md), [DestroyIconCache](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/destroyiconcache.md), [DocumentContextChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/documentcontextchanged.md), [ExpirePreview](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/expirepreview.md), [GetValue](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/getvalue.md), [HtmlHelp_Source](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/htmlhelp-source.md), [IsolateObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/isolateobject.md), [Menu_AppendObjectHelp](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/menu-appendobjecthelp.md), [Menu_AppendObjectName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/menu-appendobjectname.md), [Menu_AppendObjectNameEx](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/menu-appendobjectnameex.md), [Menu_AppendPublish](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/menu-appendpublish.md), [MovedBetweenDocuments](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/movedbetweendocuments.md), [OnAttributesChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/onattributeschanged.md), [OnDisplayExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/ondisplayexpired.md), [OnObjectChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/onobjectchanged.md), [OnPingDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/onpingdocument.md), [OnPreviewExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/onpreviewexpired.md), [OnSolutionExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/onsolutionexpired.md), [RecordUndoEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/recordundoevent.md), [RemovedFromDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/removedfromdocument.md), [SetIconOverride](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/seticonoverride.md), [SetValue](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/setvalue.md), [TriggerAutoSave](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/triggerautosave.md), [ValuesChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/valueschanged.md)
- From [GH_InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription.md): [Category](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/category.md), [Description](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/description.md), [HasCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/hascategory.md), [HasSubCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/hassubcategory.md), [InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/instancedescription.md), [InstanceGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/instanceguid.md), [Keywords](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/keywords.md), [Name](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/name.md), [NickName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/nickname.md), [SubCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/subcategory.md), [CopyFrom](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/copyfrom.md), [NewInstanceGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/newinstanceguid.md), [ReadFull](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/readfull.md), [WriteFull](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription/writefull.md)
