# IGH_InstanceDescription 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_InstanceDescription : GH_ISerializable
```

Base interface for all objects that participate in the Grasshopper GUI.

**Derived types:** [GH_InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-instancedescription.md), [IGH_DocumentObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject.md), [IGH_SketchElement](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.sketchelements.igh-sketchelement.md)

## Properties

- [Category](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/category.md): Gets or sets the Category in which this object belongs. If HasCategory() returns false, this field has no meaning.
- [Description](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/description.md): Gets or sets the description of the object. This field typically remains fixed during the lifetime of an object.
- [HasCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/hascategory.md): Gets whether or not the Category field has been set.
- [HasSubCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/hassubcategory.md): Gets whether or not the SubCategory field has been set.
- [InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/instancedescription.md): Gets a description of the current state of the object. This field is usually the same as the Description() field, but it might be variable when overridden.
- [InstanceGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/instanceguid.md): Gets the ID of this runtime instance.
- [Keywords](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/keywords.md): Gets a list of additional keywords that describe the object. Typically this list is empty but you can override this property to aid in object searches.
- [Name](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/name.md): Gets or sets the name of the object. This field typically remains fixed during the lifetime of an object.
- [NickName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/nickname.md): Gets or sets the nickname of the object. This field can be changed by the user.
- [SubCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/subcategory.md): Gets or sets the SubCategory in which this object belongs. If HasSubCategory() returns false, this field has no meaning.

## Methods

- [NewInstanceGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/newinstanceguid.md): (2 overloads) Generate a new random instance GUID

## 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)
