# ComponentParameters class

Namespace: [Grasshopper2.Components](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.components.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
[IoId("00000000-1193-48a8-aaee-b330e55149a0")]
public sealed class ComponentParameters : IEnumerable<IParameter>, IStorable
```

Implementation of IComponentParameters.

## Constructors

- [ComponentParameters](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/ctor.md): Create a new instance of the ComponentParameters.

## Properties

- [Count](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/count.md): Gets the total number of parameters.
- [InputCount](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/inputcount.md): Gets the total number of input parameters.
- [Inputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/inputs.md): Enumerate over all inputs.
- [MetaMixingBehaviour](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/metamixingbehaviour.md): Gets or sets how meta data is inherited by outputs from inputs.
- [MetaMixingRecipe](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/metamixingrecipe.md): Gets or sets the inheritance map for meta data on this component. Leave blank to use default inheritance logic. Setting this property will not expire the component or cause a new solution to be computed, those steps are the responsibility of the caller.
- [MetaMixingTable](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/metamixingtable.md): Gets the meta data inheritance map resolved to valid indices. This is an array of length OutputCount where each entry lists all the input parameter indices that act as inheritance parents for each output.
- [OutputCount](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/outputcount.md): Gets the total number of output parameters.
- [Outputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/outputs.md): Enumerate over all outputs.

## Methods

- [AddInput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/addinput.md): (4 overloads) Add an input parameter to the bottom of the list.
- [AddOutput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/addoutput.md): (4 overloads) Add an output parameter to the bottom of the list.
- [AutoInputMaintenance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/autoinputmaintenance.md): A utility method for processing all input parameters from within a [Component.VariableParameterMaintenance()](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.component/variableparametermaintenance.md) method.
- [AutoOutputMaintenance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/autooutputmaintenance.md): A utility method for processing all output parameters from within a [Component.VariableParameterMaintenance()](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.component/variableparametermaintenance.md) method.
- [CreateUniqueInputName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/createuniqueinputname.md): Create an input user name which isn't yet used in this instance.
- [CreateUniqueOutputName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/createuniqueoutputname.md): Create an output user name which isn't yet used in this instance.
- [GetEnumerator](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/getenumerator.md): Returns an enumerator that iterates through the collection.
- [GetInputStates](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/getinputstates.md): Get arrays describing the current input state.
- [GetOutputStates](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/getoutputstates.md): Gets arrays describing the current output state.
- [GetPinStates](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/getpinstates.md): Get arrays describing the current pinned states.
- [IStorable.Store](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/grasshopperio-istorable-store.md)
- [IndexOfFirstInputOfType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/indexoffirstinputoftype.md): Gets the index of the first input parameter whose type is compatible with the provided type.
- [IndexOfFirstOutputOfType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/indexoffirstoutputoftype.md): Gets the index of the first output parameter whose type is compatible with the provided type.
- [IndexOfInput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/indexofinput.md): (2 overloads) Gets the index of the given parameter.
- [IndexOfOutput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/indexofoutput.md): (2 overloads) Gets the index of the given parameter.
- [Input](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/input.md): (2 overloads) Gets the input parameter with the specified id.
- [IsInput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/isinput.md): (2 overloads) Test whether a specific parameter is defined as an input.
- [IsOutput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/isoutput.md): (2 overloads) Test whether a specific parameter is defined as an output.
- [Output](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/output.md): (2 overloads) Gets the output parameter with the specified id.
- [RemoveInput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/removeinput.md): (4 overloads) Remove the input parameter at the specified index.
- [RemoveOutput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/removeoutput.md): (4 overloads) Remove the output parameter at the specified index.
- [Requirement](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/requirement.md): (2 overloads) Gets the parameter requirement for a given input id.
- [Restore](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/restore.md)
- [SortInputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/sortinputs.md): (2 overloads) Sort the input parameters based on keys. This method fails silently.
- [SortOutputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/sortoutputs.md): (2 overloads) Sort the output parameters based on keys. This method fails silently.
- [IEnumerable.GetEnumerator](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/system-collections-ienumerable-getenumerator.md): Returns an enumerator that iterates through a collection.

## Events

- [ParameterAdded](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/parameteradded.md): This event is raised when a parameter is added to this component.
- [ParameterDisplayChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/parameterdisplaychanged.md): This event is raised when a parameter is either shown or hidden.
- [ParameterEnabledChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/parameterenabledchanged.md): This event is raised when a parameter is either enabled or disabled.
- [ParameterExpired](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/parameterexpired.md): This event is raised when a parameter solution expires.
- [ParameterLayoutChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/parameterlayoutchanged.md): This event is raised when a parameter layout has been changed.
- [ParameterMaintenanceRequired](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/parametermaintenancerequired.md): This event is raised whenever a significant change to the parameter topology has been made. For example when parameters get added, removed or deserialized. Making sure parameter access, nicknames, mutability, etc. are correctly set up is best done by handling this event.
- [ParameterRemoved](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/parameterremoved.md): This event is raised when a parameter is removed from this component.
- [ParameterRenamed](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.componentparameters/parameterrenamed.md): This event is raised when a parameter user name changes.
