# IGH_Param 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_Param : IGH_ActiveObject
```

Base interface for all Parameter types in Grasshopper. Do not implement this interface from scratch, derive from GH_Param or GH_PersistentParam instead.

**Derived types:** [GH_Param<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-param-1.md), [IGH_ProxyParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-proxyparameter.md), [Param_AnnotationArrow](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.annotations.params.param-annotationarrow.md), [Param_Colour](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.parameters.param-colour.md), [Param_Integer](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.parameters.param-integer.md), [Param_Number](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.parameters.param-number.md)

## Properties

- [Access](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/access.md): Gets or sets the Access level for this parameter.
- [DataMapping](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/datamapping.md): Gets or sets the data mapping of this Parameter.
- [DataType](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/datatype.md): Gets the type of the current data state.
- [HasProxySources](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/hasproxysources.md): Gets a value indicating whether or not this parameter maintains proxy sources. Proxy sources are used during file IO, when actual sources might not be available yet. Once an IO operation has been completed there should be no more proxy sources.
- [Kind](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/kind.md): Gets the parameter kind. The kind is evaluated lazily and cached.
- [Optional](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/optional.md): Gets or sets whether or not this parameter is considered optional by the owner component. Empty, non-optional parameters prevent the component from being solved.
- [ProxySourceCount](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/proxysourcecount.md): Gets the number of proxy sources for this parameter. Proxy sources are used during file IO, when actual sources might not be available yet. Once an IO operation has been completed there should be no more proxy sources.
- [Recipients](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/recipients.md): Gets a list of all the recipients of this parameter. I.e. a recipient has this parameter as one of the sources. The Recipient list is maintained by the parameter, do not modify it yourself.
- [Reverse](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/reverse.md): Gets or sets the data reverse modifier of this parameter.
- [Simplify](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/simplify.md): Gets or sets the simplify modifier for this parameter.
- [SourceCount](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/sourcecount.md): Gets the number of sources for this parameter.
- [Sources](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/sources.md): Gets a list of source parameters. Do not modify this list, if you wish to add or remove sources, use dedicated functions like AddSource() and RemoveSource instead.
- [StateTags](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/statetags.md): Gets all the StateTags that are associated with this parameter. A state tag is a visual feedback icon that represents specific internal settings.
- [Type](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/type.md): Gets the Framework Type descriptor for the stored Data.
- [TypeName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/typename.md): Gets a human readable description of the data stored in this parameter.
- [VolatileData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/volatiledata.md): Gets the instance of the volatile data tree stored in this parameter.
- [VolatileDataCount](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/volatiledatacount.md): Gets the total number of volatile data items stored in this parameter.
- [WireDisplay](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/wiredisplay.md): Gets or sets the wire display style for this parameter. Wire display only affects the wires connected to the parameter input.

## Methods

- [AddSource](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/addsource.md): (2 overloads) Insert a new Source parameter into the Sources list. Sources provide this parameter with data at runtime.
- [AddVolatileData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/addvolatiledata.md): Inserts an item of volatile data into the data structure.
- [AddVolatileDataList](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/addvolatiledatalist.md): Inserts a list of items into the data structure.
- [AddVolatileDataTree](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/addvolatiledatatree.md): Insert an entire data tree into this parameter.
- [ClearProxySources](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/clearproxysources.md): Remove all proxy sources without attempting to relink them.
- [CreateProxySources](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/createproxysources.md): Convert all proper source parameters into proxy sources.
- [RelinkProxySources](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/relinkproxysources.md): Attempt to replace all proxy sources with real sources. Proxy sources are used during file IO, when actual sources might not be available yet. Once an IO operation has been completed there should be no more proxy sources.
- [RemoveAllSources](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/removeallsources.md): Remove all sources from this parameter.
- [RemoveEffects](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/removeeffects.md): Remove all post-process effects.
- [RemoveSource](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/removesource.md): (2 overloads) Remove the specified source from this parameter.
- [ReplaceSource](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-param/replacesource.md): (2 overloads) Replace an existing source with a new one. If the old_source does not exist in this parameter, nothing happens.

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