
# IPCB_OutputOptions interface

The output settings of a PCB document, such as drill drawing symbols, pad master layers and the plotted layers, returned by [`IPCB_Board.OutputOptions`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#outputoptions).

```csharp
public interface IPCB_OutputOptions : 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). The settings form two groups: general options (drill symbols, pad master layers, vias in the solder mask and unconnected pads) and layer options ([`PlotLayer`](#plotlayer), [`FlipLayer`](#fliplayer) and the inclusion of mechanical layers with all plots). Each group can be written to and read from a parameter string.

[`Export_ToParameters`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#export_toparameters) writes every setting as a parameter; [`Import_FromParameters`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#import_fromparameters) reads them. Both handle the two groups; [`Import_FromParameters_Version3`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#import_fromparameters_version3) and [`Export_ToParameters_Version3`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractOptions.md#export_toparameters_version3) handle the general options and the layer options in the version 3 layer numbering.

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [BottomLayerOnPadMaster](#bottomlayeronpadmaster) | `bool` | get; set |  |
| [DrillDrawSymbolSize](#drilldrawsymbolsize) | `int` | get; set | The size of the symbols on the drill drawing, in internal units (10,000 per mil). |
| [DrillGuideHoleSize](#drillguideholesize) | `int` | get; set | The hole size used on the drill guide, in internal units (10,000 per mil). |
| [DrillSymbolKind](#drillsymbolkind) | [TDrillSymbol](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TDrillSymbol.md) | get; set | How hole sizes are marked on the drill drawing, with graphic symbols (`TDrillSymbol.eSymbols`), numbers (`TDrillSymbol.eNumbers`) or letters (`TDrillSymbol.eLetters`). |
| [FlipLayer](#fliplayer) | `bool` | get; set |  |
| [IncludeUnconnectedPads](#includeunconnectedpads) | `bool` | get; set |  |
| [IncludeViasInSolderMask](#includeviasinsoldermask) | `bool` | get; set |  |
| [MultiLayerOnPadMaster](#multilayeronpadmaster) | `bool` | get; set |  |
| [PlotLayer](#plotlayer) | `bool` | get; set |  |
| [TopLayerOnPadMaster](#toplayeronpadmaster) | `bool` | get; set |  |

### BottomLayerOnPadMaster

*No description yet.*

```csharp
bool GetState_BottomLayerOnPadMaster();
void SetState_BottomLayerOnPadMaster(bool argValue);
```

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

Newly created options start with true.

### DrillDrawSymbolSize

The size of the symbols on the drill drawing, in internal units (10,000 per mil).

```csharp
int GetState_DrillDrawSymbolSize();
void SetState_DrillDrawSymbolSize(int argValue);
```

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

Newly created options start with 50 mil.

### DrillGuideHoleSize

The hole size used on the drill guide, in internal units (10,000 per mil).

```csharp
int GetState_DrillGuideHoleSize();
void SetState_DrillGuideHoleSize(int argValue);
```

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

Newly created options start with 30 mil.

### DrillSymbolKind

How hole sizes are marked on the drill drawing, with graphic symbols (`TDrillSymbol.eSymbols`), numbers (`TDrillSymbol.eNumbers`) or letters (`TDrillSymbol.eLetters`).

```csharp
TDrillSymbol GetState_DrillSymbolKind();
void SetState_DrillSymbolKind(TDrillSymbol argValue);
```

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

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

Newly created options start with `TDrillSymbol.eSymbols`.

### FlipLayer

*No description yet.*

```csharp
bool GetState_FlipLayer(TV6_PlotLayer argPL);
void SetState_FlipLayer(TV6_PlotLayer argPL, bool argValue);
```

**Type:** `bool` · **Access:** read/write · **Index:** `argPL` ([TV6_PlotLayer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TV6_PlotLayer.md)): The plot layer.

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

### IncludeUnconnectedPads

*No description yet.*

```csharp
bool GetState_IncludeUnconnectedPads();
void SetState_IncludeUnconnectedPads(bool argValue);
```

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

Newly created options start with true.

### IncludeViasInSolderMask

*No description yet.*

```csharp
bool GetState_IncludeViasInSolderMask();
void SetState_IncludeViasInSolderMask(bool argValue);
```

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

Newly created options start with true.

### MultiLayerOnPadMaster

*No description yet.*

```csharp
bool GetState_MultiLayerOnPadMaster();
void SetState_MultiLayerOnPadMaster(bool argValue);
```

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

Newly created options start with true.

### PlotLayer

*No description yet.*

```csharp
bool GetState_PlotLayer(TV6_PlotLayer argPL);
void SetState_PlotLayer(TV6_PlotLayer argPL, bool argValue);
```

**Type:** `bool` · **Access:** read/write · **Index:** `argPL` ([TV6_PlotLayer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TV6_PlotLayer.md)): The plot layer.

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

### TopLayerOnPadMaster

*No description yet.*

```csharp
bool GetState_TopLayerOnPadMaster();
void SetState_TopLayerOnPadMaster(bool argValue);
```

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

Newly created options start with true.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [Export_ToParameters_GeneralOptions](#export_toparameters_generaloptions) | `void` | Writes the general output settings to a parameter string. |
| [Export_ToParameters_LayerOptions](#export_toparameters_layeroptions) | `void` | Writes the layer settings to a parameter string. |
| [Export_ToParameters_LayerOptions_Version3](#export_toparameters_layeroptions_version3) | `void` | Writes the layer settings to a parameter string in the version 3 layer numbering. |
| [Import_FromParameters_GeneralOptions](#import_fromparameters_generaloptions) | `void` | Reads the general output settings from a parameter string. |
| [Import_FromParameters_LayerOptions](#import_fromparameters_layeroptions) | `void` | Reads the layer settings from a parameter string. |
| [Import_FromParameters_LayerOptions_Version3](#import_fromparameters_layeroptions_version3) | `void` | Reads the layer settings from a parameter string that uses the version 3 layer numbering. |

### Export_ToParameters_GeneralOptions

Writes the general output settings to a parameter string.

```csharp
void Export_ToParameters_GeneralOptions(ref string argParameters);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argParameters` | `string` | ref | The parameter string that receives the settings. |

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

Writes [`DrillGuideHoleSize`](#drillguideholesize), [`DrillDrawSymbolSize`](#drilldrawsymbolsize), [`DrillSymbolKind`](#drillsymbolkind), [`MultiLayerOnPadMaster`](#multilayeronpadmaster), [`TopLayerOnPadMaster`](#toplayeronpadmaster), [`BottomLayerOnPadMaster`](#bottomlayeronpadmaster), [`IncludeViasInSolderMask`](#includeviasinsoldermask) and [`IncludeUnconnectedPads`](#includeunconnectedpads). The layer settings are not written: use [`Export_ToParameters_LayerOptions`](#export_toparameters_layeroptions).

### Export_ToParameters_LayerOptions

Writes the layer settings to a parameter string.

```csharp
void Export_ToParameters_LayerOptions(ref string argParameters);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argParameters` | `string` | ref | The parameter string that receives the settings. |

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

Writes whether mechanical layers 1 to 16 are included with all plots, and the [`PlotLayer`](#plotlayer) and [`FlipLayer`](#fliplayer) selections of all plot layers.

### Export_ToParameters_LayerOptions_Version3

Writes the layer settings to a parameter string in the version 3 layer numbering.

```csharp
void Export_ToParameters_LayerOptions_Version3(ref string argParameters);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argParameters` | `string` | ref | The parameter string that receives the settings. |

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

Writes whether mechanical layers 1 to 4 are included with all plots, and the [`PlotLayer`](#plotlayer) and [`FlipLayer`](#fliplayer) selections of each plot layer that has a version 3 equivalent; other layers are left out.

### Import_FromParameters_GeneralOptions

Reads the general output settings from a parameter string.

```csharp
void Import_FromParameters_GeneralOptions(TUnit argDisplayUnit, string argParameters);
void Import_FromParameters_GeneralOptions(int argDisplayUnit, string argParameters);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argDisplayUnit` | [TUnit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TUnit.md) | value | The unit used to read the coordinate values [`DrillGuideHoleSize`](#drillguideholesize) and [`DrillDrawSymbolSize`](#drilldrawsymbolsize). |
| `argParameters` | `string` | value | The parameter string to read. |

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

The first overload is an extension method of `IPCB_OutputOptionsHelper` (`using PCB;`) with typed parameters; the second is declared by the interface.

Reads the parameters that [`Export_ToParameters_GeneralOptions`](#export_toparameters_generaloptions) writes; the layer settings are read by [`Import_FromParameters_LayerOptions`](#import_fromparameters_layeroptions).

### Import_FromParameters_LayerOptions

Reads the layer settings from a parameter string.

```csharp
void Import_FromParameters_LayerOptions(string argParameters);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argParameters` | `string` | value | The parameter string to read. |

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

Reads the settings that [`Export_ToParameters_LayerOptions`](#export_toparameters_layeroptions) writes. When the string holds only the older layer selection with one character per plot layer, plot layers beyond its end keep their current value. When the string holds no layer selection, [`PlotLayer`](#plotlayer) and [`FlipLayer`](#fliplayer) are not changed.

### Import_FromParameters_LayerOptions_Version3

Reads the layer settings from a parameter string that uses the version 3 layer numbering.

```csharp
void Import_FromParameters_LayerOptions_Version3(string argParameters);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argParameters` | `string` | value | The parameter string to read. |

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

Reads whether mechanical layers 1 to 4 are included with all plots and the [`PlotLayer`](#plotlayer) and [`FlipLayer`](#fliplayer) selections, and converts each version 3 plot layer to the corresponding current plot layer. Plot layers that have no version 3 equivalent are not changed.

## 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_Board.OutputOptions](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#outputoptions)
