# IGH_VariableParameterComponent 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_VariableParameterComponent
```

Implement this interface in your component if you want to enable variable parameter UI.

**Derived types:** [GH_CleanTreeComponent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.components.gh-cleantreecomponent.md), [GH_Cluster](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-cluster.md), [GH_DataDamComponent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.components.gh-datadamcomponent.md), [GH_ExplodeTreeComponent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.components.gh-explodetreecomponent.md), [GH_StreamFilterComponent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.components.gh-streamfiltercomponent.md), [GH_StreamGateComponent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.components.gh-streamgatecomponent.md), [GH_ValueTimeline](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-valuetimeline.md)

## Methods

- [CanInsertParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-variableparametercomponent/caninsertparameter.md): This function will get called before an attempt is made to insert a parameter. Since this method is potentially called on Canvas redraws, it must be fast.
- [CanRemoveParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-variableparametercomponent/canremoveparameter.md): This function will get called before an attempt is made to remove a parameter. Since this method is potentially called on Canvas redraws, it must be fast.
- [CreateParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-variableparametercomponent/createparameter.md): This function will be called when a new parameter is about to be inserted. You must provide a valid parameter or insertion will be skipped. You do not, repeat not, need to insert the parameter yourself.
- [DestroyParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-variableparametercomponent/destroyparameter.md): This function will be called when a parameter is about to be removed. You do not need to do anything, but this would be a good time to remove any event handlers that might be attached to the parameter in question.
- [VariableParameterMaintenance](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-variableparametercomponent/variableparametermaintenance.md): This method will be called when a closely related set of variable parameter operations completes. This would be a good time to ensure all Nicknames and parameter properties are correct. This method will also be called upon IO operations such as Open, Paste, Undo and Redo.
