# IGH_Component interface

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 interface IGH_Component : IGH_ActiveObject, IGH_PreviewObject, IGH_BakeAwareObject
```

Base interface for all GH_Component types. Do not implement this interface from scratch, inherit from GH_Component instead.

**Derived types:** [GH_Component](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component.md), [IGH_TaskCapableComponent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-taskcapablecomponent.md)

## Properties

- [DataComparison](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/datacomparison.md): A data combination flag
- [InConstructor](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/inconstructor.md): Gets the constructor flag for this instance. If InConstructor = True, it means the component is still registering parameters and the layout is not yet complete.
- [IsValidMasterParameterIndex](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/isvalidmasterparameterindex.md): Gets whether the MasterParameterIndex property identifies a valid parameter.
- [MasterParameterIndex](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/masterparameterindex.md): Gets or sets the master parameter index override. Negative indices or indices larger than or equal to the input parameter count will be ignored and regular master parameter detection will kick in.
- [Message](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/message.md): Gets or sets a custom message to be displayed underneath the component.
- [Params](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/params.md): Gets the Params object that managed input and output parameters.
- [RunCount](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/runcount.md): Gets a value indicating how many times the SolveInstance method was called on this component during the last solution. This property will return -1 if no valid runcount is available.

## Inherited Members

- From [IGH_ActiveObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject.md): [IsDataProvider](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/isdataprovider.md), [Locked](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/locked.md), [MutableNickName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/mutablenickname.md), [Phase](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/phase.md), [ProcessorTime](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/processortime.md), [RuntimeMessageLevel](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/runtimemessagelevel.md), [AddRuntimeMessage](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/addruntimemessage.md), [ClearData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/cleardata.md), [ClearRuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/clearruntimemessages.md), [CollectData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/collectdata.md), [ComputeData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/computedata.md), [DependsOn](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/dependson.md), [RegisterRemoteIDs](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/registerremoteids.md), [RuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/runtimemessages.md), [SDKCompliancy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/sdkcompliancy.md)
- From [IGH_PreviewObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject.md): [ClippingBox](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/clippingbox.md), [Hidden](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/hidden.md), [IsPreviewCapable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/ispreviewcapable.md), [DrawViewportMeshes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/drawviewportmeshes.md), [DrawViewportWires](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/drawviewportwires.md)
- From [IGH_BakeAwareObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-bakeawareobject.md): [IsBakeCapable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-bakeawareobject/isbakecapable.md), [BakeGeometry](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-bakeawareobject/bakegeometry.md)
- From [IGH_DocumentObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject.md): [Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/attributes.md), [ComponentGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/componentguid.md), [Exposure](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/exposure.md), [IconDisplayMode](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/icondisplaymode.md), [Icon_24x24](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/icon-24x24.md), [Icon_24x24_Locked](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/icon-24x24-locked.md), [Obsolete](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/obsolete.md), [AttributesChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/attributeschanged.md), [DisplayExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/displayexpired.md), [ObjectChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/objectchanged.md), [PingDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/pingdocument.md), [PreviewExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/previewexpired.md), [SolutionExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/solutionexpired.md), [AddedToDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/addedtodocument.md), [AppendMenuItems](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/appendmenuitems.md), [CreateAttributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/createattributes.md), [DocumentContextChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/documentcontextchanged.md), [ExpirePreview](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/expirepreview.md), [ExpireSolution](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/expiresolution.md), [IsolateObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/isolateobject.md), [MovedBetweenDocuments](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/movedbetweendocuments.md), [OnAttributesChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onattributeschanged.md), [OnDisplayExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/ondisplayexpired.md), [OnObjectChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onobjectchanged.md), [OnPingDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onpingdocument.md), [OnPreviewExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onpreviewexpired.md), [OnSolutionExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onsolutionexpired.md), [RecordUndoEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/recordundoevent.md), [RemovedFromDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/removedfromdocument.md), [TriggerAutoSave](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/triggerautosave.md)
- From [IGH_InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription.md): [Category](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/category.md), [Description](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/description.md), [HasCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/hascategory.md), [HasSubCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/hassubcategory.md), [InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/instancedescription.md), [InstanceGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/instanceguid.md), [Keywords](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/keywords.md), [Name](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/name.md), [NickName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/nickname.md), [SubCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/subcategory.md), [NewInstanceGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/newinstanceguid.md)
- 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)
