# GH_Cluster class

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

```cs
public class GH_Cluster : GH_Component, IGH_VariableParameterComponent, IGH_InstanceGuidDependent, IGH_DocumentOwner
```

The Grasshopper Cluster object.

## Constructors

- [GH_Cluster](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/ctor.md)

## Properties

- [ClippingBox](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/clippingbox.md)
- [ClusterComponentId](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/clustercomponentid.md): (static)
- [ComponentGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/componentguid.md)
- [DocumentId](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/documentid.md): Gets or sets the ID of the internal cluster document. If there is no internal document, the ID returned will be Guid.Empty. Do not use the setter unless you know what you are doing.
- [EnableCaching](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/enablecaching.md): Gets whether cluster caching is enabled. This is an application wide setting modified by the "TestClusterCache" command. It's primary aim is to reduce computational overhead on Rhino Compute servers.
- [Exposure](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/exposure.md)
- [FilePath](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/filepath.md): Gets the filepath that points to the cluster file. If this cluster does not reference a file, the FilePath will be null.
- [Icon](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/icon.md)
- [IsBakeCapable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/isbakecapable.md)
- [IsPreviewCapable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/ispreviewcapable.md)
- [Locked](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/locked.md)
- [PreviewContent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/previewcontent.md): Gets or sets whether the document inside the cluster is included in the preview.
- [ProtectionLevel](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/protectionlevel.md): Gets the protection level of this cluster.
- [Synchronisation](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/synchronisation.md): Gets the current synchronisation state of the cluster.

## Methods

- [AddedToDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/addedtodocument.md)
- [AppendAdditionalComponentMenuItems](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/appendadditionalcomponentmenuitems.md)
- [AssignNewPassword](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/assignnewpassword.md): Assign a new password to this cluster.
- [BakeGeometry](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/bakegeometry.md): (2 overloads)
- [CanInsertParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/caninsertparameter.md)
- [CanRemoveParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/canremoveparameter.md)
- [CreateAttributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/createattributes.md)
- [CreateFromDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/createfromdocument.md): (2 overloads) Recreate this cluster based on the provided document. The document will not be copied so it should be a unique instance reference. The document should have input and output hooks otherwise the cluster will have no input or output parameters.
- [CreateFromFilePath](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/createfromfilepath.md): (2 overloads) Recreate this cluster based on a provided filepath.
- [CreateFromSelection](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/createfromselection.md): Recreate this cluster based on the selected objects in the provided document. The selection in the document will be copied so you do not have to supply a unique doc. The luster will be inserted into the provided document.
- [CreateParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/createparameter.md)
- [DestroyParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/destroyparameter.md)
- [DisplayClusterPropertiesEditor](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/displayclusterpropertieseditor.md)
- [Document](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/document.md): Gets the cluster document. If the cluster has a password, you'll need to supply it.
- [DocumentClosed](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/documentclosed.md)
- [DocumentContextChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/documentcontextchanged.md)
- [DocumentModified](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/documentmodified.md)
- [DoKeysMatch](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/dokeysmatch.md): (static) Test two keys.
- [DrawViewportMeshes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/drawviewportmeshes.md)
- [DrawViewportWires](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/drawviewportwires.md)
- [EditClusterAsSeparateDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/editclusterasseparatedocument.md)
- [ExpireSolution](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/expiresolution.md)
- [ExplodeCluster](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/explodecluster.md): Explode this cluster back into the document that contains it.
- [InstanceGuidsChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/instanceguidschanged.md): Whenever the InstanceIDs of objects were changed, the cluster needs to be informed.
- [IsPasswordValid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/ispasswordvalid.md): Tests whether a given password is valid. If there is no password defined for this cluster every password is considered valid.
- [OwnerDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/ownerdocument.md)
- [Read](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/read.md)
- [ReadGhClusterFile](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/readghclusterfile.md): Read all cluster data from a *.ghcluster file.
- [RegisterInputParams](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/registerinputparams.md)
- [RegisterOutputParams](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/registeroutputparams.md)
- [RemovedFromDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/removedfromdocument.md)
- [RequestPassword](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/requestpassword.md): Display a window which requests a password from the user. If this cluster has no password, this method returns True immediately.
- [SolveInstance](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/solveinstance.md)
- [UpdateDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/updatedocument.md): Update this cluster to use a new document. Input and Output parameters will be maintained whenever possible. This function is very low-level, if you're in doubt about whether to use it or not, ask on https://discourse.mcneel.com/ for further information.
- [VariableParameterMaintenance](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/variableparametermaintenance.md)
- [Write](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/write.md)
- [WriteGhClusterFile](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster/writeghclusterfile.md): Write this cluster object to a *.ghcluster file.

## Inherited Members

- From [GH_Component](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component.md): [DataComparison](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/datacomparison.md), [HelpDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/helpdescription.md), [Hidden](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/hidden.md), [InConstructor](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/inconstructor.md), [InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/instancedescription.md), [IsDataProvider](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/isdataprovider.md), [IsValidPrincipalParameterIndex](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/isvalidprincipalparameterindex.md), [Message](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/message.md), [Params](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/params.md), [PrincipalParameterIndex](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/principalparameterindex.md), [ProcessorTime](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/processortime.md), [RunCount](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/runcount.md), [RuntimeMessageLevel](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/runtimemessagelevel.md), [AfterSolveInstance](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/aftersolveinstance.md), [AppendAdditionalMenuItems](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/appendadditionalmenuitems.md), [AppendRenderGeometry](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/appendrendergeometry.md), [AssignInitCodeToInputParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/assigninitcodetoinputparameter.md), [BeforeSolveInstance](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/beforesolveinstance.md), [ClearData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/cleardata.md), [ClearRuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/clearruntimemessages.md), [CollectData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/collectdata.md), [ComputeData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/computedata.md), [DependsOn](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/dependson.md), [ExpireDownStreamObjects](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/expiredownstreamobjects.md), [GenerateDefaultHTML](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/generatedefaulthtml.md), [GenerateParameterHelp](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/generateparameterhelp.md), [HtmlHelp_Source](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/htmlhelp-source.md), [IsolateObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/isolateobject.md), [MovedBetweenDocuments](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/movedbetweendocuments.md), [PostConstructor](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/postconstructor.md), [RegisterRemoteIDs](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/registerremoteids.md), [RuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-component/runtimemessages.md)
- From [GH_ActiveObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject.md): [IconCapableUI](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/iconcapableui.md), [MutableNickName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/mutablenickname.md), [Phase](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/phase.md), [AddRuntimeMessage](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/addruntimemessage.md), [AppendMenuItems](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/appendmenuitems.md), [Menu_AppendBakeItem](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendbakeitem.md), [Menu_AppendEnableItem](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendenableitem.md), [Menu_AppendPreviewItem](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendpreviewitem.md), [Menu_AppendRuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendruntimemessages.md), [Menu_AppendWarningsAndErrors](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/menu-appendwarningsanderrors.md), [SDKCompliancy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-activeobject/sdkcompliancy.md)
- 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), [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), [DestroyIconCache](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentobject/destroyiconcache.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), [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), [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), [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), [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)
