
# IParameter interface

The `IParameter` interface is a parameter object interface to an existing parameter object on a schematic sheet. There are two types of parameters - system parameters which are owned by a schematic document and parameters owned by certain schematic design objects.

```csharp
public interface IParameter : IAbstractObject
```

**Namespace:** ComponentLib · **Assembly:** Altium.SDK.Interfaces

**Inherits:** [IAbstractObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractObject.md)

## Remarks

A parameter is a child object of a Parameter Set, Part, Pin, Port, or Sheet Symbol object. A Parameter object has a Name property and Value property which can be used to store information, thus the parameters are a way of defining and associating information and could include strings that identify component manufacturer, date added to the document and also a string for the component's value (e.g. 100K for a resistor or 10PF for a capacitor).

Each parameter has a Unique Id assigned to it. This is used for those parameters that have been added as design rule directives. When transferring the design to the PCB document, any defined rule parameters will be used to generate the relevant design rules in the PCB. These generated rules will be given the same Unique Ids, allowing you to change rule constraints in either schematic or PCB and push the change across when performing a synchronization.

An equivalent object representation is the [`ISch_Parameter`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Parameter.md) class in the Sch API reference.

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [RealValue](#realvalue) | `double` | get; set |  |
| [RequiredParameter](#requiredparameter) | [IRequiredParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IRequiredParameter.md) | get; set |  |
| [Value](#value) | `string` | get; set |  |

### RealValue

*No description yet.*

```csharp
double GetRealValue();
void SetRealValue(double argValue);
```

**Type:** `double` · **Access:** read/write

### RequiredParameter

*No description yet.*

```csharp
IRequiredParameter GetRequiredParameter();
void SetRequiredParameter(IRequiredParameter argValue);
```

**Type:** [IRequiredParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IRequiredParameter.md) · **Access:** read/write

The accessors are extension methods of `IParameterHelper` (`using ComponentLib;`).

### Value

*No description yet.*

```csharp
string GetValue();
void SetValue(string argValue);
```

**Type:** `string` · **Access:** read/write

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [GetName](#getname) | `string` |  |
| [IsSystemParameter](#issystemparameter) | `bool` |  |

### GetName

*No description yet.*

```csharp
string GetName();
```

**Returns:** `string`

### IsSystemParameter

*No description yet.*

```csharp
bool IsSystemParameter();
```

**Returns:** `bool`

## Returned by

[IAbstractItem.FindParameterByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#findparameterbyname), [IComponentLibraryDocument.CreateParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentLibraryDocument.md#createparameter), [IComponentLibraryManager.CreateParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentLibraryManager.md#createparameter), [IParameterList.Get](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IParameterList.md#get)

## Accepted by

[IParameterList.Add](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IParameterList.md#add)

## Examples

Used in the SDK examples: [Extension_AddVariant](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_AddVariant/Source%20Code/Commands.cs#L70), [Extension_PartComment](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PartComment/Source%20Code/Commands.cs#L92).
