
# ISch_Parameter interface

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 ISch_Parameter : ISch_ComplexText
```

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

**Inherits:** [ISch_BasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md) → [ISch_GraphicalObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md) → [ISch_Label](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md) → [ISch_ComplexText](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ComplexText.md)

**Derived:** [ISch_Designator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Designator.md), [ISch_ImageParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ImageParameter.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.

To look for system wide parameters (not associated with a schematic design object), you would set up an iterator to look for parameters.

Fetching system (standalone) parameters

## Example

Iterate over the stand-alone parameters of the current schematic sheet.

```csharp
using SCH;

ISch_Document currentSheet = SCH.GlobalVars.SchServer?.GetCurrentSchDocument();
if (currentSheet == null)
    return;

ISch_Iterator iterator = currentSheet.SchIterator_Create();
// Look for stand-alone parameters only, not the parameters of components.
iterator.SetState_IterationDepth(TIterationDepth.eIterateFirstLevel);
iterator.AddFilter_ObjectSet(new SCH.TObjectSet { TObjectId.eParameter });
try
{
    for (var parameter = iterator.FirstSchObject() as ISch_Parameter; parameter != null; parameter = iterator.NextSchObject() as ISch_Parameter)
    {
        // Do what you want with the parameter.
    }
}
finally
{
    currentSheet.SchIterator_Destroy(ref iterator);
}
```

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [AllowDatabaseSynchronize](#allowdatabasesynchronize) | `bool` | get; set |  |
| [AllowLibrarySynchronize](#allowlibrarysynchronize) | `bool` | get; set |  |
| [Description](#description) | `string` | get; set |  |
| [IsConfigurable](#isconfigurable) | `bool` | get |  |
| [IsRule](#isrule) | `bool` | get |  |
| [IsSystemParameter](#issystemparameter) | `bool` | get |  |
| [Name](#name) | `string` | get; set | The Name property determines the name for the parameter object. |
| [NameIsReadOnly](#nameisreadonly) | `bool` | get |  |
| [ParamType](#paramtype) | [TParameterType](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TParameterType.md) | get; set |  |
| [ReadOnlyState](#readonlystate) | [TParameter_ReadOnlyState](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TParameter_ReadOnlyState.md) | get; set |  |
| [ShowName](#showname) | `bool` | get; set |  |
| [ValueIsReadOnly](#valueisreadonly) | `bool` | get |  |
| [VariantOption](#variantoption) | [IVariantOption](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IVariantOption.md) | get; set |  |

### AllowDatabaseSynchronize

*No description yet.*

```csharp
bool GetState_AllowDatabaseSynchronize();
void SetState_AllowDatabaseSynchronize(bool argB);
```

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

### AllowLibrarySynchronize

*No description yet.*

```csharp
bool GetState_AllowLibrarySynchronize();
void SetState_AllowLibrarySynchronize(bool argB);
```

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

### Description

*No description yet.*

```csharp
string GetState_Description();
void SetState_Description(string argS);
```

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

### IsConfigurable

*No description yet.*

```csharp
bool GetState_IsConfigurable();
```

**Type:** `bool` · **Access:** read-only

### IsRule

*No description yet.*

```csharp
bool GetState_IsRule();
```

**Type:** `bool` · **Access:** read-only

### IsSystemParameter

*No description yet.*

```csharp
bool GetState_IsSystemParameter();
```

**Type:** `bool` · **Access:** read-only

### Name

The Name property determines the name for the parameter object.

```csharp
string GetState_Name();
void SetState_Name(string argS);
```

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

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

### NameIsReadOnly

*No description yet.*

```csharp
bool GetState_NameIsReadOnly();
```

**Type:** `bool` · **Access:** read-only

### ParamType

*No description yet.*

```csharp
TParameterType GetState_ParamType();
void SetState_ParamType(TParameterType argN);
```

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

The accessors are extension methods of `ISch_ParameterHelper` (`using SCH;`).

### ReadOnlyState

*No description yet.*

```csharp
TParameter_ReadOnlyState GetState_ReadOnlyState();
void SetState_ReadOnlyState(TParameter_ReadOnlyState argR);
```

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

The accessors are extension methods of `ISch_ParameterHelper` (`using SCH;`).

### ShowName

*No description yet.*

```csharp
bool GetState_ShowName();
void SetState_ShowName(bool argN);
```

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

### ValueIsReadOnly

*No description yet.*

```csharp
bool GetState_ValueIsReadOnly();
```

**Type:** `bool` · **Access:** read-only

### VariantOption

*No description yet.*

```csharp
IVariantOption GetState_VariantOption();
void SetState_VariantOption(IVariantOption argV);
```

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

The accessors are extension methods of `ISch_ParameterHelper` (`using SCH;`).

## Inherited members

- From [ISch_ComplexText](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ComplexText.md): [Autoposition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ComplexText.md#autoposition), [IsHidden](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ComplexText.md#ishidden), [TextHorzAnchor](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ComplexText.md#texthorzanchor), [TextVertAnchor](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ComplexText.md#textvertanchor)
- From [ISch_Label](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md): [CalculatedValueString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#calculatedvaluestring), [DisplayString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#displaystring), [FontId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#fontid), [Formula](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#formula), [IsMirrored](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#ismirrored), [Justification](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#justification), [Orientation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#orientation), [OverrideDisplayString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#overridedisplaystring), [SimpleCalculatedString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Label.md#simplecalculatedstring)
- From [ISch_GraphicalObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md): [AddErrorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#adderrorstring), [AreaColor](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#areacolor), [BoundingRectangle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#boundingrectangle), [BoundingRectangle_Full](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#boundingrectangle_full), [Color](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#color), [CompilationMasked](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#compilationmasked), [Dimmed](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#dimmed), [Disabled](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#disabled), [DisplayError](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#displayerror), [EnableDraw](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#enabledraw), [ErrorColor](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#errorcolor), [ErrorKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#errorkind), [ErrorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#errorstring), [GetHash](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#gethash), [GraphicallyInvalidate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#graphicallyinvalidate), [LiveHighlightValue](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#livehighlightvalue), [Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#location), [Mirror](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#mirror), [MoveByXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#movebyxy), [MoveToXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#movetoxy), [OwnerPartDisplayMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#ownerpartdisplaymode), [OwnerPartId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#ownerpartid), [ResetErrorFields](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#reseterrorfields), [RotateBy90](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#rotateby90), [Selection](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#selection), [SetState_xSizeySize](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#setstate_xsizeysize)
- From [ISch_BasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md): [AddAndPositionSchObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#addandpositionschobject), [AddSchObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#addschobject), [CopyTo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#copyto), [DeleteAll](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#deleteall), [DescriptionString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#descriptionstring), [ExportToParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#exporttoparameters), [FreeAllContainedObjects](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#freeallcontainedobjects), [Handle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#handle), [IdentifierString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#identifierstring), [Import_FromUser](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#import_fromuser), [ObjectId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#objectid), [OwnerSchDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#ownerschdocument), [RemoveSchObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#removeschobject), [Replicate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#replicate), [SchBasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schbasiccontainer), [SchIterator_Create](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schiterator_create), [SchIterator_Destroy](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schiterator_destroy), [SchParameterByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schparameterbyname), [Setstate_Default](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#setstate_default), [Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#text), [UniqueId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#uniqueid), [WiringDiagramOriginUniqueId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#wiringdiagramoriginuniqueid)

## Returned by

[IFSM_State.SchComment](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IFSM_State.md#schcomment), [IFSM_Transition.SchComment](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IFSM_Transition.md#schcomment), [ISch_BasicContainer.SchParameterByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schparameterbyname), [ISch_Component.AddSchParameter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Component.md#addschparameter), [ISch_Component.SchComment](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Component.md#schcomment), [ISch_HarnessBundle.SchComment](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HarnessBundle.md#schcomment), [ISch_HarnessBundle.SchLength](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HarnessBundle.md#schlength), [ISch_HarnessCable.SchComment](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HarnessCable.md#schcomment), [ISch_HarnessCable.SchDescription](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HarnessCable.md#schdescription), [ISch_HarnessLayoutLabel.SchComment](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HarnessLayoutLabel.md#schcomment), [ISch_HarnessWire.SchComment](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HarnessWire.md#schcomment), [ISch_HarnessWire.SchDescription](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HarnessWire.md#schdescription)

## Examples

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