# AbstractParameter class

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

```cs
public abstract class AbstractParameter : ActiveObject, IParameter
```

Absolute lowest implementation of IParameter, do not derive directly from this abstract class, instead consider the [Parameter](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.parameter.md) and [Parameter<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.parameter-1.md) classes as starting points.

**Derived types:** [Parameter](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.parameter.md), [Parameter<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.parameter-1.md)

## Constructors

- [AbstractParameter](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/ctor.md): (3 overloads) Deserialization constructor.

## Properties

- [Access](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/access.md): Gets the access for this parameter, i.e. whether it treats data as items, lists or trees.
- [AccessVariability](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/accessvariability.md): Gets or sets the variability allowance of the access level. If this variability is anything other than None, the parameter will provide menu UI for changing its access state.
- [ColourOverride](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/colouroverride.md): Gets or sets the colour override for the display of this object.
- [Connectivity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/connectivity.md): Gets the topological connectivity of this object. The topology is not updated automatically, so be sure to get a fresh instance every time you need it.
- [DisplayName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/displayname.md)
- [Expression](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/expression.md): Gets the expression associated with the expression text, if the text is not null/empty and a valid expression. Note that if the [AbstractParameter.ExpressionEnabled](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/expressionenabled.md) property is set to false, this property still returns an expression if it can.
- [ExpressionEnabled](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/expressionenabled.md): Gets or sets whether the expression is taken into consideration.
- [ExpressionText](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/expressiontext.md): Gets or sets the expression text for this parameter.
- [FallbackName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/fallbackname.md): Gets or sets a fallback name to be used as DisplayName in case the UserName is null or empty.
- [HardMetaData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/hardmetadata.md): Gets or sets the hard meta data to assign to all values passing through this parameter. Hard meta data is always assigned and may overwrite existing meta data with the same keys.
- [Inputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/inputs.md): Gets the input parameters. This list only includes parameters that are connected through wires, it does not include globals this parameter depends on.
- [Kind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/kind.md): Gets the parameter station (in life). Input, output, floating or other.
- [ModifierIcons](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/modifiericons.md): Gets an array of all the state icons for this parameter.
- [Modifiers](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/modifiers.md): Gets or sets the modifiers associated with this parameter.
- [Outputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/outputs.md): Gets the output parameters. This list only includes parameters that are connected through wires, it does not include objects that in some other way depend on this parameter.
- [PersistentDataWeak](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/persistentdataweak.md): Gets the persistent data in a weakly typed form.
- [PickRelatedItemsNomen](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/pickrelateditemsnomen.md): Gets the nomen to be used for the 'Set Related Items' button. If this property returns null, the button is not displayed on the pop-over.
- [PostProcessInputTrees](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/postprocessinputtrees.md): Assign this method if you wish to process the trees harvested from source parameters before they are converted into a single, type compatible tree. Do note that any type conversions that occur here will not be included in the conversion record. Also note that this property must be assigned every time as it cannot be (de)serialised.
- [PresetsWeak](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/presetsweak.md): Gets the presets in a weakly typed form.
- [Requirement](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/requirement.md): Gets or sets the data requirement for this parameter. Requirement typically only make sense as component inputs, but the property exists on all parameters.
- [SoftMetaData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/softmetadata.md): Gets or sets the soft meta data to assign to all values passing through this parameter. Soft meta data is only assigned when it won't overwrite existing meta data with the same keys.
- [TypeAssistantWeak](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/typeassistantweak.md): Each parameter type ought to provide an assistant. However this property may return null, in which case a lot of functionality will not be available.
- [TypeFlavour](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/typeflavour.md): Gets the flavour of the type this parameter contains.

## Methods

- [AppendCleaningModifiers](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appendcleaningmodifiers.md): Append the parameter modifiers to do with cleaning, (Remove Empty Twig, Remove Nulls, Remove Invalid).
- [AppendCustomModifiers](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appendcustommodifiers.md): Override this method to append a bar with custom modifiers, or, if you really want, mess with the already added input panel elements.
- [AppendDataElements](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appenddataelements.md): Append the parameter persistent data setters. (Clear, Internalise, Set One, Set Many, Edit).
- [AppendExpressionModifier](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appendexpressionmodifier.md): Append the expression modifier UI to the input panel. Override this method and do nothing to disable expressions on this parameter.
- [AppendModifierIcons](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appendmodifiericons.md): Override this method if you with to add your own modifier icons to this parameter.
- [AppendOrderingModifierElements](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appendorderingmodifierelements.md): Append the parameter modifiers to do with item ordering, (Sort, Randomise, Reverse).
- [AppendToInputPanel](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appendtoinputpanel.md)
- [AppendTopologyModifierElements](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appendtopologymodifierelements.md): Append all default modifier options.
- [AppendVariableAccessElements](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/appendvariableaccesselements.md): Append the group of input access variability inputs (Item, Twig, Tree), depending on parameter state.
- [ClearModifierIcons](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/clearmodifiericons.md)
- [CollectFromPersistent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/collectfrompersistent.md)
- [CollectFromSources](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/collectfromsources.md)
- [ComputeInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/computeinternal.md)
- [CreateAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/createattributes.md): Create default attributes for this object. If attributes already exist, this method will not replace them.
- [CreateEmptyTree](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/createemptytree.md): Create an empty tree which can be used as a placeholder for null data in solution results.
- [CreateValueControl](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/createvaluecontrol.md): Construct a lightweight control suitable for editing this parameter's value. Control provider is responsible for handling undo record and assigning changes. Return null if no control makes sense in any particular case. Note that the control which is returned by this method may never be shown.
- [EditMetaData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/editmetadata.md): Pop up the hard and soft meta data editor.
- [EditPersistentValues](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/editpersistentvalues.md): Show the persistent values editor.
- [ExpireAllRecipients](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/expireallrecipients.md)
- [ExpireReferences](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/expirereferences.md): Expire all references which match a validator method.
- [GetAllSourceTrees](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/getallsourcetrees.md)
- [IsUnchangedByRelink](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/isunchangedbyrelink.md): (static) Gets whether a relinked value is identical to the value it would replace, comparing geometry by its data CRC, other values by equality, and meta data by content.
- [ModifyAndProcessResult](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/modifyandprocessresult.md): Apply the modifiers and the [AbstractParameter.ProcessResult(Solution, SolutionData)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/processresult.md) method. This is automatically called as part of the standard [AbstractParameter.ComputeInternal(Solution, CallStack)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/computeinternal.md) logic, so unless you're overriding that, you have no need of this method.
- [OverrideAccess](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/overrideaccess.md): (2 overloads) Method for overriding the access. You almost never want to change this yourself, which is why this functionality is hidden behind this method.
- [PickManyItems](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/pickmanyitems.md): Override this method to specify many values.
- [PickOneItem](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/pickoneitem.md): Override this method to specify a single value.
- [PickRelatedItems](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/pickrelateditems.md): Override this method to specify many related values. This usually translates to the special pickers. Many parameters do not override this method and that's absolutely fine.
- [ProcessResult](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/processresult.md): Override this method if you wish to post-process the default result of this parameter. The intermediate result will either contain the merged tree of all source objects or the persistent data, processed by the parameter modifiers. It will also contain all relevant type conversion messaging. You may choose to replace the data in the intermediate result, add messages, or create an entirely new Result instance, but do note that the intermediate may contain a lot of useful messaging.
- [Relink](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/relink.md): (static)
- [RevertProperties](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/revertproperties.md): (static) Revert various parameter properties to default values.
- [SiphonProperties](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/siphonproperties.md): (static) Carry over properties from one parameter to another.
- [Store](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/store.md)
- [VolatileDataDescription](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/volatiledatadescription.md): Gets a set of strings which describe the current state of this parameter. This is used primarily to populate tooltip content.

## Events

- [ColourOverrideModified](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.abstractparameter/colouroverridemodified.md)

## Inherited Members

- From [ActiveObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject.md): [DisplayCache](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/displaycache.md), [State](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/state.md), [Compute](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/compute.md), [DisplayBounds](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/displaybounds.md), [DisplayFaces](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/displayfaces.md), [DisplayWires](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/displaywires.md), [Expire](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/expire.md), [PopulateDisplay](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/populatedisplay.md), [UpdateDisplay](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject/updatedisplay.md)
- From [DocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject.md): [Activity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/activity.md), [Attributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/attributes.md), [ChildrenObjects](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/childrenobjects.md), [CustomValues](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/customvalues.md), [Display](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/display.md), [DisplayCapable](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/displaycapable.md), [DisplayStyle](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/displaystyle.md), [Document](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/document.md), [EntireFamily](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/entirefamily.md), [FoundingObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/foundingobject.md), [Icon](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/icon.md), [IconInternal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/iconinternal.md), [InstanceId](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/instanceid.md), [Nomen](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/nomen.md), [Obsolete](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/obsolete.md), [ParentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/parentobject.md), [Phase](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/phase.md), [ProgressPercentage](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/progresspercentage.md), [Relevance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/relevance.md), [Selected](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/selected.md), [Selection](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/selection.md), [SiblingObjects](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/siblingobjects.md), [UserName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/username.md), [ActivityChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/activitychanged.md), [AutosaveRequested](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/autosaverequested.md), [DisplayChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/displaychanged.md), [DocumentChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/documentchanged.md), [Expired](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/expired.md), [InstanceIdChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/instanceidchanged.md), [LayoutChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/layoutchanged.md), [NameChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/namechanged.md), [RelevanceChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/relevancechanged.md), [SelectedChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/selectedchanged.md), [AddUndoRecord](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/addundorecord.md), [AppendBakeInput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/appendbakeinput.md), [AppendStateInput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/appendstateinput.md), [AppendUserNameInput](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/appendusernameinput.md), [ChangeInstanceIds](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/changeinstanceids.md), [ExpireDisplay](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/expiredisplay.md), [GetCreationInfo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/getcreationinfo.md), [GetModificationInfo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/getmodificationinfo.md), [InvalidateExistingLayout](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/invalidateexistinglayout.md), [ModifyIcon](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/modifyicon.md), [ModifyNameAndInfo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/modifynameandinfo.md), [OnDisplayChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/ondisplaychanged.md), [OnExpired](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/onexpired.md), [OnLayoutChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/onlayoutchanged.md), [OverrideAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/overrideattributes.md), [RequestAutoSave](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/requestautosave.md), [SetCreationInfo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/setcreationinfo.md), [SetModificationInfo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/setmodificationinfo.md), [SetProgressPercentage](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/setprogresspercentage.md)
