
# IPCB_SystemOptions interface

The global settings of the PCB Editor, returned by [`IPCB_ServerInterface.SystemOptions`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ServerInterface.md#systemoptions).

```csharp
public interface IPCB_SystemOptions : IPCB_AbstractOptions
```

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

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

## Remarks

The interface extends [`IPCB_AbstractOptions`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md). [`Export_ToParameters_Version3`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#export_toparameters_version3) and [`Import_FromParameters_Version3`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#import_fromparameters_version3) handle only part of the settings, with the per-layer settings in the version 3 layer numbering.

## Example

Switch the board cursor to the next cursor shape.

```csharp
using PCB;

IPCB_SystemOptions pcbSystemOptions = PCB.GlobalVars.PCBServer?.GetState_SystemOptions();
if (pcbSystemOptions == null)
    return;
if (pcbSystemOptions.GetState_BoardCursorType() == TGraphicsCursor.eCurShapeCross90)
    pcbSystemOptions.SetState_BoardCursorType(TGraphicsCursor.eCurShapeBigCross);
else if (pcbSystemOptions.GetState_BoardCursorType() == TGraphicsCursor.eCurShapeBigCross)
    pcbSystemOptions.SetState_BoardCursorType(TGraphicsCursor.eCurShapeCross45);
else
    pcbSystemOptions.SetState_BoardCursorType(TGraphicsCursor.eCurShapeCross90);
```

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [AmbiguityMenu](#ambiguitymenu) | `bool` | get; set |  |
| [AmbiguityThreshold](#ambiguitythreshold) | `int` | get; set |  |
| [AutoPan](#autopan) | `bool` | get; set |  |
| [AutoPanLargeStep](#autopanlargestep) | `int` | get; set |  |
| [AutoPanMode](#autopanmode) | [TAutoPanMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TAutoPanMode.md) | get; set |  |
| [AutoPanSmallStep](#autopansmallstep) | `int` | get; set |  |
| [AutoPanSpeed](#autopanspeed) | `int` | get; set |  |
| [AutoPanUnit](#autopanunit) | [TAutoPanUnit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TAutoPanUnit.md) | get; set |  |
| [AutoVia](#autovia) | `bool` | get; set |  |
| [BoardAreaColor](#boardareacolor) | `uint` | get; set |  |
| [BoardCursorType](#boardcursortype) | [TGraphicsCursor](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TGraphicsCursor.md) | get; set |  |
| [BoardLineColor](#boardlinecolor) | `uint` | get; set |  |
| [CheckComments](#checkcomments) | `bool` | get; set |  |
| [CheckPatterns](#checkpatterns) | `bool` | get; set |  |
| [CleanRedraw](#cleanredraw) | `bool` | get; set |  |
| [ClickClearsSelection](#clickclearsselection) | `bool` | get; set |  |
| [Com1Parameters](#com1parameters) | [SerialParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/SerialParameters.md) | get; set |  |
| [Com2Parameters](#com2parameters) | [SerialParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/SerialParameters.md) | get; set |  |
| [Com3Parameters](#com3parameters) | [SerialParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/SerialParameters.md) | get; set |  |
| [Com4Parameters](#com4parameters) | [SerialParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/SerialParameters.md) | get; set |  |
| [ComponentMoveKind](#componentmovekind) | [TComponentMoveKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TComponentMoveKind.md) | get; set |  |
| [ComponentRefPointColor](#componentrefpointcolor) | `uint` | get; set |  |
| [ConfirmSelectionMemoryClear](#confirmselectionmemoryclear) | `bool` | get; set |  |
| [DefaultPrimsPermanent](#defaultprimspermanent) | `bool` | get; set |  |
| [DefaultTTFont](#defaultttfont) | `string` | get; set |  |
| [DeleteDeadEnds](#deletedeadends) | `bool` | get; set |  |
| [DeleteUnconnectedComps](#deleteunconnectedcomps) | `bool` | get; set |  |
| [DeleteUnconnectedPrims](#deleteunconnectedprims) | `bool` | get; set |  |
| [DisplaySpecialStrings](#displayspecialstrings) | `bool` | get; set |  |
| [DoOnlineDRC](#doonlinedrc) | `bool` | get; set | Whether online design rule checking is on. |
| [DoubleClickRunsInspector](#doubleclickrunsinspector) | `bool` | get; set |  |
| [DraftTrackThreshold](#drafttrackthreshold) | `int` | get; set | The width at or below which tracks and arcs drawn in outline form are drawn as a single thin line instead, in internal units (10,000 per mil). |
| [DragMode](#dragmode) | [TPcbDragMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TPcbDragMode.md) | get; set |  |
| [DrawMode](#drawmode) | [TDrawMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TDrawMode.md) | get; set | The draw mode of one kind of object in the PCB document of the active view. |
| [DuplicateDesignatorsAllowed](#duplicatedesignatorsallowed) | `bool` | get; set |  |
| [FractionalDigits](#fractionaldigits) | `int` | get; set |  |
| [FromTosDisplayMode](#fromtosdisplaymode) | [TFromToDisplayMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TFromToDisplayMode.md) | get; set |  |
| [GlobalEditIncludeArcsWithTracks](#globaleditincludearcswithtracks) | `bool` | get; set |  |
| [HighlightFull](#highlightfull) | `bool` | get; set |  |
| [HoldShiftToSelectObjectId](#holdshifttoselectobjectid) | `bool` | get; set |  |
| [InteractiveRouteMode](#interactiveroutemode) | [TInteractiveRouteMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TInteractiveRouteMode.md) | get; set |  |
| [LayerColors](#layercolors) | `uint` | get; set |  |
| [LayerColors_V7](#layercolors_v7) | `uint` | get; set |  |
| [LayerDrawingOrder](#layerdrawingorder) | [V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md) | get; set |  |
| [LayerDrawingOrderCount](#layerdrawingordercount) | `int` | get; set |  |
| [LayerNameDisplayMode](#layernamedisplaymode) | [TLayerNameDisplayMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerNameDisplayMode.md) | get; set |  |
| [LockPreRoutes](#lockpreroutes) | `bool` | get; set |  |
| [LoopRemoval](#loopremoval) | `bool` | get; set |  |
| [MinPadViaObjectSizeInPixels](#minpadviaobjectsizeinpixels) | `int` | get; set |  |
| [ModelOptions](#modeloptions) | [IPCB_ModelOptions](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ModelOptions.md) | get |  |
| [MustHoldShiftToSelect](#mustholdshifttoselect) | `bool` | get; set |  |
| [NearestComponent](#nearestcomponent) | `bool` | get; set |  |
| [NetlistReportDialog](#netlistreportdialog) | `bool` | get; set |  |
| [NetlistReportFile](#netlistreportfile) | `bool` | get; set |  |
| [OnlySelectVisible](#onlyselectvisible) | `bool` | get; set |  |
| [OriginMarkerColor](#originmarkercolor) | `uint` | get; set |  |
| [PadstackUpdateFromGlobalsOnLoad](#padstackupdatefromglobalsonload) | [TSameNamePadstackReplacementMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TSameNamePadstackReplacementMode.md) | get; set |  |
| [PadTypesDisplayMode](#padtypesdisplaymode) | [TFromToDisplayMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TFromToDisplayMode.md) | get; set |  |
| [PadViaFontBkColor](#padviafontbkcolor) | `uint` | get; set |  |
| [PadViaFontColor](#padviafontcolor) | `uint` | get; set |  |
| [PadViaFontName](#padviafontname) | `string` | get; set |  |
| [PadViaFontStyle](#padviafontstyle) | [TFontStyleSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TFontStyleSet.md) | get; set |  |
| [PadViaMinFontSize](#padviaminfontsize) | `int` | get; set | The size of the pad and via font, the font named by [`PadViaFontName`](#padviafontname). |
| [Paste_HasSameDesignator](#paste_hassamedesignator) | `bool` | get; set |  |
| [Paste_InSameClass](#paste_insameclass) | `bool` | get; set |  |
| [Paste_InSameNet](#paste_insamenet) | `bool` | get; set |  |
| [Paste_OnSameLayer](#paste_onsamelayer) | `bool` | get; set |  |
| [PlaceShoveDepth](#placeshovedepth) | `int` | get; set |  |
| [PlaneDrawMode](#planedrawmode) | [TPlaneDrawMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TPlaneDrawMode.md) | get; set |  |
| [PlowThroughPolygons](#plowthroughpolygons) | `bool` | get; set |  |
| [PolygonRepour](#polygonrepour) | [TPolygonRepourMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TPolygonRepourMode.md) | get; set |  |
| [PolygonThreshold](#polygonthreshold) | `int` | get; set |  |
| [ProtectLockedPrimitives](#protectlockedprimitives) | `bool` | get; set |  |
| [QuestionDelete](#questiondelete) | `bool` | get; set |  |
| [QuestionDrag](#questiondrag) | `bool` | get; set |  |
| [QuestionGlobalChange](#questionglobalchange) | `bool` | get; set |  |
| [RedrawLayerOnToggle](#redrawlayerontoggle) | `bool` | get; set |  |
| [RemoveDuplicatesOnOutput](#removeduplicatesonoutput) | `bool` | get; set |  |
| [RepeatCircular](#repeatcircular) | `bool` | get; set |  |
| [RepeatCountDefault](#repeatcountdefault) | `int` | get; set |  |
| [RepeatDegrees](#repeatdegrees) | `double` | get; set |  |
| [RepeatInc](#repeatinc) | `string` | get; set |  |
| [RepeatRotateItem](#repeatrotateitem) | `bool` | get; set |  |
| [RepeatX](#repeatx) | `double` | get; set |  |
| [RepeatXUnit](#repeatxunit) | [TUnit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TUnit.md) | get; set |  |
| [RepeatY](#repeaty) | `double` | get; set |  |
| [RepeatYUnit](#repeatyunit) | [TUnit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TUnit.md) | get; set |  |
| [ReportsCSV](#reportscsv) | `bool` | get; set |  |
| [RotationStep](#rotationstep) | `double` | get; set | The angle, in degrees, by which the object being moved or placed is rotated when Space is pressed (Shift+Space rotates it the other way). |
| [SameNamePadstackReplacementMode](#samenamepadstackreplacementmode) | [TSameNamePadstackReplacementMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TSameNamePadstackReplacementMode.md) | get; set |  |
| [SaveDefs](#savedefs) | `bool` | get; set |  |
| [ShadowsInPCB](#shadowsinpcb) | `bool` | get; set |  |
| [SheetAreaColor](#sheetareacolor) | `uint` | get; set |  |
| [SheetLineColor](#sheetlinecolor) | `uint` | get; set |  |
| [ShowAllPrimitivesInHighlightedNets](#showallprimitivesinhighlightednets) | `bool` | get; set |  |
| [ShowComponentRefPoint](#showcomponentrefpoint) | `bool` | get; set |  |
| [ShowInvisibleObjects](#showinvisibleobjects) | `bool` | get; set |  |
| [ShowPadNets](#showpadnets) | `bool` | get; set |  |
| [ShowPadNumbers](#showpadnumbers) | `bool` | get; set |  |
| [ShowStatusInfo](#showstatusinfo) | `bool` | get; set |  |
| [ShowStatusInterval](#showstatusinterval) | `int` | get; set |  |
| [ShowTestPoints](#showtestpoints) | `bool` | get; set |  |
| [ShowViaNets](#showvianets) | `bool` | get; set |  |
| [SingleLayerMode](#singlelayermode) | `bool` | get; set | Whether single layer mode is on. |
| [SnapToCentre](#snaptocentre) | `bool` | get; set |  |
| [TextToRectSize](#texttorectsize) | `int` | get; set |  |
| [UndoRedoStackSize](#undoredostacksize) | `int` | get; set | The size of the undo stack of the PCB Editor. |
| [UseDithered](#usedithered) | `bool` | get; set |  |
| [UseNetColorForHighlight](#usenetcolorforhighlight) | `bool` | get; set |  |
| [UseSmartTrackEnds](#usesmarttrackends) | `bool` | get; set |  |
| [UseTransparent](#usetransparent) | `bool` | get; set |  |
| [ValidateOnLoad](#validateonload) | `bool` | get; set |  |
| [WorkspaceColor1](#workspacecolor1) | `uint` | get; set |  |
| [WorkspaceColor2](#workspacecolor2) | `uint` | get; set |  |

### AmbiguityMenu

*No description yet.*

```csharp
bool GetState_AmbiguityMenu();
void SetState_AmbiguityMenu(bool argValue);
```

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

### AmbiguityThreshold

*No description yet.*

```csharp
int GetState_AmbiguityThreshold();
void SetState_AmbiguityThreshold(int argValue);
```

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

Reading always returns 0; setting the property does nothing.

### AutoPan

*No description yet.*

```csharp
bool GetState_AutoPan();
void SetState_AutoPan(bool argValue);
```

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

### AutoPanLargeStep

*No description yet.*

```csharp
int GetState_AutoPanLargeStep();
void SetState_AutoPanLargeStep(int argValue);
```

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

### AutoPanMode

*No description yet.*

```csharp
TAutoPanMode GetState_AutoPanMode();
void SetState_AutoPanMode(TAutoPanMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### AutoPanSmallStep

*No description yet.*

```csharp
int GetState_AutoPanSmallStep();
void SetState_AutoPanSmallStep(int argValue);
```

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

### AutoPanSpeed

*No description yet.*

```csharp
int GetState_AutoPanSpeed();
void SetState_AutoPanSpeed(int argValue);
```

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

### AutoPanUnit

*No description yet.*

```csharp
TAutoPanUnit GetState_AutoPanUnit();
void SetState_AutoPanUnit(TAutoPanUnit argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### AutoVia

*No description yet.*

```csharp
bool GetState_AutoVia();
void SetState_AutoVia(bool argValue);
```

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

### BoardAreaColor

*No description yet.*

```csharp
uint GetState_BoardAreaColor();
void SetState_BoardAreaColor(uint argValue);
```

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

### BoardCursorType

*No description yet.*

```csharp
TGraphicsCursor GetState_BoardCursorType();
void SetState_BoardCursorType(TGraphicsCursor argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### BoardLineColor

*No description yet.*

```csharp
uint GetState_BoardLineColor();
void SetState_BoardLineColor(uint argValue);
```

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

### CheckComments

*No description yet.*

```csharp
bool GetState_CheckComments();
void SetState_CheckComments(bool argValue);
```

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

### CheckPatterns

*No description yet.*

```csharp
bool GetState_CheckPatterns();
void SetState_CheckPatterns(bool argValue);
```

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

### CleanRedraw

*No description yet.*

```csharp
bool GetState_CleanRedraw();
void SetState_CleanRedraw(bool argValue);
```

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

### ClickClearsSelection

*No description yet.*

```csharp
bool GetState_ClickClearsSelection();
void SetState_ClickClearsSelection(bool argValue);
```

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

### Com1Parameters

*No description yet.*

```csharp
SerialParameters GetState_Com1Parameters();
void SetState_Com1Parameters(SerialParameters argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### Com2Parameters

*No description yet.*

```csharp
SerialParameters GetState_Com2Parameters();
void SetState_Com2Parameters(SerialParameters argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### Com3Parameters

*No description yet.*

```csharp
SerialParameters GetState_Com3Parameters();
void SetState_Com3Parameters(SerialParameters argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### Com4Parameters

*No description yet.*

```csharp
SerialParameters GetState_Com4Parameters();
void SetState_Com4Parameters(SerialParameters argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### ComponentMoveKind

*No description yet.*

```csharp
TComponentMoveKind GetState_ComponentMoveKind();
void SetState_ComponentMoveKind(TComponentMoveKind argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### ComponentRefPointColor

*No description yet.*

```csharp
uint GetState_ComponentRefPointColor();
void SetState_ComponentRefPointColor(uint argValue);
```

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

### ConfirmSelectionMemoryClear

*No description yet.*

```csharp
bool GetState_ConfirmSelectionMemoryClear();
void SetState_ConfirmSelectionMemoryClear(bool argValue);
```

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

### DefaultPrimsPermanent

*No description yet.*

```csharp
bool GetState_DefaultPrimsPermanent();
void SetState_DefaultPrimsPermanent(bool argValue);
```

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

### DefaultTTFont

*No description yet.*

```csharp
string GetState_DefaultTTFont();
void SetState_DefaultTTFont(string argValue);
```

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

### DeleteDeadEnds

*No description yet.*

```csharp
bool GetState_DeleteDeadEnds();
void SetState_DeleteDeadEnds(bool argValue);
```

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

### DeleteUnconnectedComps

*No description yet.*

```csharp
bool GetState_DeleteUnconnectedComps();
void SetState_DeleteUnconnectedComps(bool argValue);
```

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

### DeleteUnconnectedPrims

*No description yet.*

```csharp
bool GetState_DeleteUnconnectedPrims();
void SetState_DeleteUnconnectedPrims(bool argValue);
```

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

### DisplaySpecialStrings

*No description yet.*

```csharp
bool GetState_DisplaySpecialStrings();
void SetState_DisplaySpecialStrings(bool argValue);
```

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

### DoOnlineDRC

Whether online design rule checking is on.

```csharp
bool GetState_DoOnlineDRC();
void SetState_DoOnlineDRC(bool argValue);
```

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

When false, objects are not checked against the online design rules as they change.

### DoubleClickRunsInspector

*No description yet.*

```csharp
bool GetState_DoubleClickRunsInspector();
void SetState_DoubleClickRunsInspector(bool argValue);
```

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

### DraftTrackThreshold

The width at or below which tracks and arcs drawn in outline form are drawn as a single thin line instead, in internal units (10,000 per mil).

```csharp
int GetState_DraftTrackThreshold();
void SetState_DraftTrackThreshold(int argValue);
```

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

### DragMode

*No description yet.*

```csharp
TPcbDragMode GetState_DragMode();
void SetState_DragMode(TPcbDragMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### DrawMode

The draw mode of one kind of object in the PCB document of the active view.

```csharp
TDrawMode GetState_DrawMode(TObjectId argOId);
void SetState_DrawMode(TObjectId argOId, TDrawMode argValue);
```

**Type:** [TDrawMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TDrawMode.md) · **Access:** read/write · **Index:** `argOId` ([TObjectId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TObjectId.md)): The kind of object.

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

When the active view does not show a PCB document, reading returns `TDrawMode.eDrawFull` and setting the property does nothing.

### DuplicateDesignatorsAllowed

*No description yet.*

```csharp
bool GetState_DuplicateDesignatorsAllowed();
void SetState_DuplicateDesignatorsAllowed(bool argValue);
```

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

### FractionalDigits

*No description yet.*

```csharp
int GetState_FractionalDigits(TUnit argUnit);
void SetState_FractionalDigits(TUnit argUnit, int argDigits);
```

**Type:** `int` · **Access:** read/write · **Index:** `argUnit` ([TUnit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TUnit.md))

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### FromTosDisplayMode

*No description yet.*

```csharp
TFromToDisplayMode GetState_FromTosDisplayMode();
void SetState_FromTosDisplayMode(TFromToDisplayMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

Reading always returns `TFromToDisplayMode.eFromToDisplayMode_Automatic`; setting the property does nothing.

### GlobalEditIncludeArcsWithTracks

*No description yet.*

```csharp
bool GetState_GlobalEditIncludeArcsWithTracks();
void SetState_GlobalEditIncludeArcsWithTracks(bool argValue);
```

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

### HighlightFull

*No description yet.*

```csharp
bool GetState_HighlightFull();
void SetState_HighlightFull(bool argValue);
```

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

### HoldShiftToSelectObjectId

*No description yet.*

```csharp
bool GetState_HoldShiftToSelectObjectId(TObjectId argOId);
void SetState_HoldShiftToSelectObjectId(TObjectId argOId, bool argValue);
```

**Type:** `bool` · **Access:** read/write · **Index:** `argOId` ([TObjectId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TObjectId.md))

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### InteractiveRouteMode

*No description yet.*

```csharp
TInteractiveRouteMode GetState_InteractiveRouteMode();
void SetState_InteractiveRouteMode(TInteractiveRouteMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### LayerColors

*No description yet.*

```csharp
uint GetState_LayerColors(TV6_Layer argL);
void SetState_LayerColors(TV6_Layer argL, uint argValue);
```

**Type:** `uint` · **Access:** read/write · **Index:** `argL` ([TV6_Layer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TV6_Layer.md))

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

Reads and writes the same colour as [`LayerColors_V7`](#layercolors_v7) for the same layer.

### LayerColors_V7

*No description yet.*

```csharp
uint GetState_LayerColors_V7(V7_LayerBase argL);
void SetState_LayerColors_V7(V7_LayerBase argL, uint argValue);
```

**Type:** `uint` · **Access:** read/write · **Index:** `argL` ([V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md))

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### LayerDrawingOrder

*No description yet.*

```csharp
V7_LayerBase GetState_LayerDrawingOrder(int argI);
void SetState_LayerDrawingOrder(int argI, V7_LayerBase argValue);
```

**Type:** [V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md) · **Access:** read/write · **Index:** `argI` (`int`)

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### LayerDrawingOrderCount

*No description yet.*

```csharp
int GetState_LayerDrawingOrderCount();
void SetState_LayerDrawingOrderCount(int argI);
```

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

### LayerNameDisplayMode

*No description yet.*

```csharp
TLayerNameDisplayMode GetState_LayerNameDisplayMode();
void SetState_LayerNameDisplayMode(TLayerNameDisplayMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### LockPreRoutes

*No description yet.*

```csharp
bool GetState_LockPreRoutes();
void SetState_LockPreRoutes(bool argValue);
```

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

### LoopRemoval

*No description yet.*

```csharp
bool GetState_LoopRemoval();
void SetState_LoopRemoval(bool argValue);
```

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

### MinPadViaObjectSizeInPixels

*No description yet.*

```csharp
int GetState_MinPadViaObjectSizeInPixels();
void SetState_MinPadViaObjectSizeInPixels(int argValue);
```

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

### ModelOptions

*No description yet.*

```csharp
IPCB_ModelOptions GetState_ModelOptions();
```

**Type:** [IPCB_ModelOptions](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ModelOptions.md) · **Access:** read-only

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### MustHoldShiftToSelect

*No description yet.*

```csharp
bool GetState_MustHoldShiftToSelect();
void SetState_MustHoldShiftToSelect(bool argValue);
```

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

### NearestComponent

*No description yet.*

```csharp
bool GetState_NearestComponent();
void SetState_NearestComponent(bool argValue);
```

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

### NetlistReportDialog

*No description yet.*

```csharp
bool GetState_NetlistReportDialog();
void SetState_NetlistReportDialog(bool argValue);
```

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

### NetlistReportFile

*No description yet.*

```csharp
bool GetState_NetlistReportFile();
void SetState_NetlistReportFile(bool argValue);
```

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

### OnlySelectVisible

*No description yet.*

```csharp
bool GetState_OnlySelectVisible();
void SetState_OnlySelectVisible(bool argValue);
```

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

### OriginMarkerColor

*No description yet.*

```csharp
uint GetState_OriginMarkerColor();
void SetState_OriginMarkerColor(uint argValue);
```

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

### PadstackUpdateFromGlobalsOnLoad

*No description yet.*

```csharp
TSameNamePadstackReplacementMode GetState_PadstackUpdateFromGlobalsOnLoad();
void SetState_PadstackUpdateFromGlobalsOnLoad(TSameNamePadstackReplacementMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### PadTypesDisplayMode

*No description yet.*

```csharp
TFromToDisplayMode GetState_PadTypesDisplayMode();
void SetState_PadTypesDisplayMode(TFromToDisplayMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

Reading always returns `TFromToDisplayMode.eFromToDisplayMode_Automatic`; setting the property does nothing.

### PadViaFontBkColor

*No description yet.*

```csharp
uint GetState_PadViaFontBkColor();
void SetState_PadViaFontBkColor(uint argValue);
```

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

### PadViaFontColor

*No description yet.*

```csharp
uint GetState_PadViaFontColor();
void SetState_PadViaFontColor(uint argValue);
```

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

### PadViaFontName

*No description yet.*

```csharp
string GetState_PadViaFontName();
void SetState_PadViaFontName(string argValue);
```

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

### PadViaFontStyle

*No description yet.*

```csharp
TFontStyleSet GetState_PadViaFontStyle();
void SetState_PadViaFontStyle(TFontStyleSet argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### PadViaMinFontSize

The size of the pad and via font, the font named by [`PadViaFontName`](#padviafontname).

```csharp
int GetState_PadViaMinFontSize();
void SetState_PadViaMinFontSize(int argValue);
```

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

### Paste_HasSameDesignator

*No description yet.*

```csharp
bool GetState_Paste_HasSameDesignator();
void SetState_Paste_HasSameDesignator(bool argValue);
```

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

### Paste_InSameClass

*No description yet.*

```csharp
bool GetState_Paste_InSameClass();
void SetState_Paste_InSameClass(bool argValue);
```

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

### Paste_InSameNet

*No description yet.*

```csharp
bool GetState_Paste_InSameNet();
void SetState_Paste_InSameNet(bool argValue);
```

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

### Paste_OnSameLayer

*No description yet.*

```csharp
bool GetState_Paste_OnSameLayer();
void SetState_Paste_OnSameLayer(bool argValue);
```

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

### PlaceShoveDepth

*No description yet.*

```csharp
int GetState_PlaceShoveDepth();
void SetState_PlaceShoveDepth(int argValue);
```

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

### PlaneDrawMode

*No description yet.*

```csharp
TPlaneDrawMode GetState_PlaneDrawMode();
void SetState_PlaneDrawMode(TPlaneDrawMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### PlowThroughPolygons

*No description yet.*

```csharp
bool GetState_PlowThroughPolygons();
void SetState_PlowThroughPolygons(bool argValue);
```

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

### PolygonRepour

*No description yet.*

```csharp
TPolygonRepourMode GetState_PolygonRepour();
void SetState_PolygonRepour(TPolygonRepourMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

Setting `TPolygonRepourMode.eAlwaysRepour` stores that value; any other value is stored as `TPolygonRepourMode.eNeverRepour`.

### PolygonThreshold

*No description yet.*

```csharp
int GetState_PolygonThreshold();
void SetState_PolygonThreshold(int argValue);
```

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

### ProtectLockedPrimitives

*No description yet.*

```csharp
bool GetState_ProtectLockedPrimitives();
void SetState_ProtectLockedPrimitives(bool argValue);
```

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

### QuestionDelete

*No description yet.*

```csharp
bool GetState_QuestionDelete();
void SetState_QuestionDelete(bool argValue);
```

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

### QuestionDrag

*No description yet.*

```csharp
bool GetState_QuestionDrag();
void SetState_QuestionDrag(bool argValue);
```

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

### QuestionGlobalChange

*No description yet.*

```csharp
bool GetState_QuestionGlobalChange();
void SetState_QuestionGlobalChange(bool argValue);
```

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

### RedrawLayerOnToggle

*No description yet.*

```csharp
bool GetState_RedrawLayerOnToggle();
void SetState_RedrawLayerOnToggle(bool argValue);
```

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

### RemoveDuplicatesOnOutput

*No description yet.*

```csharp
bool GetState_RemoveDuplicatesOnOutput();
void SetState_RemoveDuplicatesOnOutput(bool argValue);
```

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

### RepeatCircular

*No description yet.*

```csharp
bool GetState_RepeatCircular();
void SetState_RepeatCircular(bool argValue);
```

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

### RepeatCountDefault

*No description yet.*

```csharp
int GetState_RepeatCountDefault();
void SetState_RepeatCountDefault(int argValue);
```

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

### RepeatDegrees

*No description yet.*

```csharp
double GetState_RepeatDegrees();
void SetState_RepeatDegrees(double argValue);
```

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

### RepeatInc

*No description yet.*

```csharp
string GetState_RepeatInc();
void SetState_RepeatInc(string argValue);
```

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

### RepeatRotateItem

*No description yet.*

```csharp
bool GetState_RepeatRotateItem();
void SetState_RepeatRotateItem(bool argValue);
```

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

### RepeatX

*No description yet.*

```csharp
double GetState_RepeatX();
void SetState_RepeatX(double argValue);
```

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

### RepeatXUnit

*No description yet.*

```csharp
TUnit GetState_RepeatXUnit();
void SetState_RepeatXUnit(TUnit argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### RepeatY

*No description yet.*

```csharp
double GetState_RepeatY();
void SetState_RepeatY(double argValue);
```

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

### RepeatYUnit

*No description yet.*

```csharp
TUnit GetState_RepeatYUnit();
void SetState_RepeatYUnit(TUnit argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### ReportsCSV

*No description yet.*

```csharp
bool GetState_ReportsCSV();
void SetState_ReportsCSV(bool argValue);
```

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

### RotationStep

The angle, in degrees, by which the object being moved or placed is rotated when Space is pressed (Shift+Space rotates it the other way).

```csharp
double GetState_RotationStep();
void SetState_RotationStep(double argValue);
```

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

### SameNamePadstackReplacementMode

*No description yet.*

```csharp
TSameNamePadstackReplacementMode GetState_SameNamePadstackReplacementMode();
void SetState_SameNamePadstackReplacementMode(TSameNamePadstackReplacementMode argValue);
```

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

The accessors are extension methods of `IPCB_SystemOptionsHelper` (`using PCB;`).

### SaveDefs

*No description yet.*

```csharp
bool GetState_SaveDefs();
void SetState_SaveDefs(bool argValue);
```

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

### ShadowsInPCB

*No description yet.*

```csharp
bool GetState_ShadowsInPCB();
void SetState_ShadowsInPCB(bool argValue);
```

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

### SheetAreaColor

*No description yet.*

```csharp
uint GetState_SheetAreaColor();
void SetState_SheetAreaColor(uint argValue);
```

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

### SheetLineColor

*No description yet.*

```csharp
uint GetState_SheetLineColor();
void SetState_SheetLineColor(uint argValue);
```

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

### ShowAllPrimitivesInHighlightedNets

*No description yet.*

```csharp
bool GetState_ShowAllPrimitivesInHighlightedNets();
void SetState_ShowAllPrimitivesInHighlightedNets(bool argValue);
```

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

### ShowComponentRefPoint

*No description yet.*

```csharp
bool GetState_ShowComponentRefPoint();
void SetState_ShowComponentRefPoint(bool argValue);
```

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

### ShowInvisibleObjects

*No description yet.*

```csharp
bool GetState_ShowInvisibleObjects();
void SetState_ShowInvisibleObjects(bool argValue);
```

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

### ShowPadNets

*No description yet.*

```csharp
bool GetState_ShowPadNets();
void SetState_ShowPadNets(bool argValue);
```

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

### ShowPadNumbers

*No description yet.*

```csharp
bool GetState_ShowPadNumbers();
void SetState_ShowPadNumbers(bool argValue);
```

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

### ShowStatusInfo

*No description yet.*

```csharp
bool GetState_ShowStatusInfo();
void SetState_ShowStatusInfo(bool argValue);
```

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

### ShowStatusInterval

*No description yet.*

```csharp
int GetState_ShowStatusInterval();
void SetState_ShowStatusInterval(int argValue);
```

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

### ShowTestPoints

*No description yet.*

```csharp
bool GetState_ShowTestPoints();
void SetState_ShowTestPoints(bool argValue);
```

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

### ShowViaNets

*No description yet.*

```csharp
bool GetState_ShowViaNets();
void SetState_ShowViaNets(bool argValue);
```

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

### SingleLayerMode

Whether single layer mode is on.

```csharp
bool GetState_SingleLayerMode();
void SetState_SingleLayerMode(bool argValue);
```

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

Reading returns the state for PCB library documents when the active view shows a PCB library, and the state for PCB documents otherwise. Setting true turns on single layer mode with the other layers hidden for both PCB and PCB library documents; setting false turns it off for both.

### SnapToCentre

*No description yet.*

```csharp
bool GetState_SnapToCentre();
void SetState_SnapToCentre(bool argValue);
```

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

### TextToRectSize

*No description yet.*

```csharp
int GetState_TextToRectSize();
void SetState_TextToRectSize(int argValue);
```

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

### UndoRedoStackSize

The size of the undo stack of the PCB Editor.

```csharp
int GetState_UndoRedoStackSize();
void SetState_UndoRedoStackSize(int argValue);
```

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

The value is fixed by the product; setting the property does nothing.

### UseDithered

*No description yet.*

```csharp
bool GetState_UseDithered();
void SetState_UseDithered(bool argValue);
```

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

### UseNetColorForHighlight

*No description yet.*

```csharp
bool GetState_UseNetColorForHighlight();
void SetState_UseNetColorForHighlight(bool argValue);
```

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

Reading always returns false; setting the property does nothing.

### UseSmartTrackEnds

*No description yet.*

```csharp
bool GetState_UseSmartTrackEnds();
void SetState_UseSmartTrackEnds(bool argValue);
```

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

### UseTransparent

*No description yet.*

```csharp
bool GetState_UseTransparent();
void SetState_UseTransparent(bool argValue);
```

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

### ValidateOnLoad

*No description yet.*

```csharp
bool GetState_ValidateOnLoad();
void SetState_ValidateOnLoad(bool argValue);
```

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

### WorkspaceColor1

*No description yet.*

```csharp
uint GetState_WorkspaceColor1();
void SetState_WorkspaceColor1(uint argValue);
```

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

### WorkspaceColor2

*No description yet.*

```csharp
uint GetState_WorkspaceColor2();
void SetState_WorkspaceColor2(uint argValue);
```

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [Export_ToIniFile](#export_toinifile) | `void` | Saves the system options to the stored preferences of the PCB Editor. |
| [Import_FromIniFile](#import_frominifile) | `void` | Loads the system options from the stored preferences of the PCB Editor. |
| [LayerColorIterator](#layercoloriterator) | [IPCB_LayerIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md) |  |

### Export_ToIniFile

Saves the system options to the stored preferences of the PCB Editor.

```csharp
void Export_ToIniFile();
```

**Returns:** nothing (`void`)

It replaces the stored system options.

### Import_FromIniFile

Loads the system options from the stored preferences of the PCB Editor.

```csharp
void Import_FromIniFile();
```

**Returns:** nothing (`void`)

### LayerColorIterator

*No description yet.*

```csharp
IPCB_LayerIterator LayerColorIterator();
```

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

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

## Inherited members

- From [IPCB_AbstractOptions](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md): [Export_ToParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#export_toparameters), [Export_ToParameters_Version3](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#export_toparameters_version3), [Export_ToParameters_Version4](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#export_toparameters_version4), [Import_FromParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#import_fromparameters), [Import_FromParameters_Version3](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#import_fromparameters_version3), [Import_FromParameters_Version4](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#import_fromparameters_version4), [ObjectID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#objectid)

## Returned by

[IPCB_ServerInterface.SystemOptions](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ServerInterface.md#systemoptions)
