# GH_ComponentParamServer class

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 class GH_ComponentParamServer : GH_ISerializable, IEnumerable<IGH_Param>
```

Wraps all members and functions needed for GH_Component to manage its input and output parameters.

## Properties

- [Input](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/input.md): Gets or sets the input list of parameters. Do not insert or remove parameters from this list, use the dedicated functions instead.
- [InputWidth](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/inputwidth.md): Gets the width of the largest input parameter.
- [OnlyTreeAndListParameters](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/onlytreeandlistparameters.md): Returns True if every input parameter is either a list or a tree parameter.
- [OnlyTreeParameters](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/onlytreeparameters.md): Returns True if every input parameter is a tree parameter.
- [Output](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/output.md): Gets or sets the output list of parameters. Do not insert or remove parameters from this list, use the dedicated functions instead.
- [OutputWidth](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/outputwidth.md): Gets the width of the largest output parameter.
- [Owner](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/owner.md): Gets the owner component of this instance

## Methods

- [AccessCount](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/accesscount.md): Returns the total number of input parameters that match the access mask.
- [Clear](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/clear.md): (2 overloads) Removes all input and output parameters.
- [CreateDuplicate](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/createduplicate.md): (static) Attempts to duplicate a parameter. Attributes will be ignored. Warning! The duplicate will have the same ID as the original!
- [EmitSyncObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/emitsyncobject.md): Create a synch object that stores a shallow representation of this server. Cache this object if you're planning to make sweeping changes to this param-server. Then, once you are finished call the Sync() function to perform cleanup of removed parameters. This is a utility function and you can choose to perform cleanup yourself.
- [Find](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/find.md): Find the parameter that has the given InstanceGuid.
- [GetEnumerator](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/getenumerator.md): Gets a customized enumerator which iterates over all (both input and output) parameters.
- [GetEnumerator1](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/getenumerator1.md): Gets a customized enumerator which iterates over all (both input and output) parameters.
- [GetHashCode](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/gethashcode.md): (2 overloads) Creates a SHA1 hash from the parameter data.
- [GetParam](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/getparam.md): Finds the parameter that matches the specified search mask.
- [IndexOfInputParam](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/indexofinputparam.md): (2 overloads) Finds the index of the input parameter that matches the specified search mask.
- [IndexOfOutputParam](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/indexofoutputparam.md): (2 overloads) Finds the index of the output parameter that matches the specified search mask.
- [InventUniqueNickname](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/inventuniquenickname.md): (2 overloads, static) Create a new, unique parameter nickname.
- [IsInputParam](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/isinputparam.md): Returns True if this parameter is an input child of the component
- [IsOutputParam](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/isoutputparam.md): Returns True if this parameter is an output child of the component
- [IsParam](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/isparam.md): Returns True if this parameter is a child of the component
- [OnParametersChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/onparameterschanged.md): Call this function when you change input/output parameter lists or types. This function will wipe all caches that are potentially invalid. PerformLayout on the component attributes will be called.
- [Read](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/read.md): Read all parameter data from an IO archive.
- [ReadAllParameterData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/readallparameterdata.md): Deserialize all possible parameter data. You can only use this method if the archive was made using the WriteAllParameterData() method.
- [RegisterInputParam](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/registerinputparam.md): (2 overloads) Add a parameter at the specific index of the input list.
- [RegisterOutputParam](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/registeroutputparam.md): (2 overloads) Add a parameter at the specific index of the output list.
- [RepairParamAssociations](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/repairparamassociations.md): Makes sure all parameter attributes are a-ok. If you stick to regular functions, you shouldn't have to call this.
- [RepairProxyParams](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/repairproxyparams.md): Attempt to fix all proxy params. Returns false if a single one fails.
- [SortInput](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/sortinput.md): (3 overloads) Sort the input parameter order based on a numeric key array.
- [SortOutput](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/sortoutput.md): (3 overloads) Sort the input parameter order based on a numeric key array.
- [Sync](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/sync.md): (3 overloads) Sync changes from a prerecorded state. All param references in the sync object which are no longer present in the current server will be properly deleted. The sync object will be reset in the process, so you can only call this function with a specific Sync object once.
- [UnregisterInputParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/unregisterinputparameter.md): (2 overloads) Removes the specified parameter from this component.
- [UnregisterOutputParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/unregisteroutputparameter.md): (2 overloads) Removes the specified parameter from this component.
- [UnregisterParameter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/unregisterparameter.md): (2 overloads) Removes the specified parameter from this component.
- [Write](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/write.md): Write all parameter data to an IO archive.
- [WriteAllParameterData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/writeallparameterdata.md): Serialize all possible parameter data. This is a sledge-hammer approach, do not use unless you're desperate.
- [WriteParamHashData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/writeparamhashdata.md): (static) Write parameter data to a binary writer.

## Events

- [ParameterChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/parameterchanged.md): Raised whenever there is a change to any parameter. If you only care about NickName or Source changes, handle the ParameterNickNameChanged or ParameterSourcesChanged events instead.
- [ParameterNickNameChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/parameternicknamechanged.md): Raised whenever a parameter nickname change is accepted.
- [ParameterSourcesChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver/parametersourceschanged.md): Raised whenever the source list of an input parameter is changed.
