
# IPCB_Parameter interface

A parameter, a name with a string value, held separately from any primitive.

```csharp
public interface IPCB_Parameter
```

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

## Remarks

`CreateParameter` of [`IPCB_ParametersFactory`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParametersFactory.md) creates a parameter. Changing a parameter does not change the parameters of a primitive: `AddOrSetParameter` and the other members of [`IPCB_PrimitiveParameters`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveParameters.md) that take a parameter store its name, value and inherited mark, and the parameters they return are copies.

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [IsInherited](#isinherited) | `bool` | get; set | Whether the parameter is marked as inherited. |
| [Name](#name) | `string` | get; set | The name of the parameter. |
| [Value](#value) | `string` | get; set | The value of the parameter, as a string. |

### IsInherited

Whether the parameter is marked as inherited.

```csharp
bool GetIsInherited();
void SetIsInherited(bool argValue);
```

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

The mark affects only the value, not whether the parameter exists: in a variant of a primitive's parameters ([`IPCB_PrimitiveParameters`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveParameters.md)), a parameter marked as inherited shows the value of the default variant's parameter of the same name, or an empty value when the default variant has no such parameter. Setting `Value` removes the mark.

### Name

The name of the parameter.

```csharp
string GetName();
void SetName(string argValue);
```

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

**Examples:** [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/PcbComponent.cs#L33)

### Value

The value of the parameter, as a string.

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

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

Setting it sets [`IsInherited`](#isinherited) to false.

**Examples:** [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/PcbComponent.cs#L33)

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [GetAttributes](#getattributes) | [IPCB_ParameterAttributes](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParameterAttributes.md) | Returns the attributes of the parameter, additional information kept with it. |

### GetAttributes

Returns the attributes of the parameter, additional information kept with it.

```csharp
IPCB_ParameterAttributes GetAttributes();
```

**Returns:** [IPCB_ParameterAttributes](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParameterAttributes.md)

Extension method of `IPCB_ParameterHelper` (`using PCB;`).

The attributes are the parameter's own, not a copy.

## Returned by

[IPCB_ParameterList.ByIndex](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParameterList.md#byindex), [IPCB_ParameterList.FindByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParameterList.md#findbyname), [IPCB_ParameterList.GetByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParameterList.md#getbyname), [IPCB_ParametersFactory.CreateParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParametersFactory.md#createparameter), [IPCB_PrimitiveParameters.FindParameterByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveParameters.md#findparameterbyname), [IPCB_PrimitiveParameters.GetParameterByIndex](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveParameters.md#getparameterbyindex), [IPCB_PrimitiveParameters.GetParameterByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveParameters.md#getparameterbyname)

## Accepted by

[IPCB_ParameterList.Add](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParameterList.md#add), [IPCB_PrimitiveParameters.AddOrSetParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveParameters.md#addorsetparameter), [IPCB_PrimitiveParameters.AddParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveParameters.md#addparameter), [IPCB_PrimitiveParameters.SetParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveParameters.md#setparameter)

## Examples

Used in the SDK examples: [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/PcbComponent.cs#L32).
