
# IPCB_EmbeddedBoard interface

An embedded board array, a rectangular object on a board that places copies of another PCB document (the child board) in a matrix of rows and columns.

```csharp
public interface IPCB_EmbeddedBoard : IPCB_RectangularPrimitive
```

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

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

## Remarks

[`DocumentPath`](#documentpath) names the child PCB document and [`ChildBoard`](#childboard) returns its board.

The copies are arranged in [`RowCount`](#rowcount) rows and [`ColCount`](#colcount) columns, [`RowSpacing`](#rowspacing) and [`ColSpacing`](#colspacing) apart. The first copy is placed with the point selected by [`OriginMode`](#originmode) at the embedded board's location ([`XLocation`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#xlocation), [`YLocation`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#ylocation)); each further row is offset upwards by [`RowSpacing`](#rowspacing) and each further column to the right by [`ColSpacing`](#colspacing). The copies are then mirrored when `Mirror` is true and rotated about the location by `Rotation`.

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [ChildBoard](#childboard) | [IPCB_Board](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md) | get | The board of the child PCB document that [`DocumentPath`](#documentpath) refers to. |
| [ColCount](#colcount) | `int` | get; set | The number of columns of child board copies in the array. |
| [ColSpacing](#colspacing) | `int` | get; set | The horizontal distance from one column of copies to the next, in internal units (10,000 per mil). |
| [DocumentPath](#documentpath) | `string` | get; set | The full path of the child PCB document used for the board array. |
| [Mirror](#mirror) | `bool` | get; set | Whether the copies of the child board are mirrored. |
| [OriginMode](#originmode) | [TEmbeddedBoardOriginMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TEmbeddedBoardOriginMode.md) | get; set | Which point of the child board is placed at the embedded board's location, the child board's origin (`TEmbeddedBoardOriginMode.eOriginMode_BoardOrigin`) or its bottom-left corner (`TEmbeddedBoardOrig… |
| [RowCount](#rowcount) | `int` | get; set | The number of rows of child board copies in the array. |
| [RowSpacing](#rowspacing) | `int` | get; set | The vertical distance from one row of copies to the next, in internal units (10,000 per mil). |
| [TransmitLayersEnabled](#transmitlayersenabled) | `bool` | get | Whether objects of the child board on a layer pass the embedded board's transmit filter. |

### ChildBoard

The board of the child PCB document that [`DocumentPath`](#documentpath) refers to.

```csharp
IPCB_Board GetState_ChildBoard();
```

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

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

Null when no PCB document with that path is loaded.

### ColCount

The number of columns of child board copies in the array.

```csharp
int GetState_ColCount();
void SetState_ColCount(int argValue);
```

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

A new embedded board has 1.

### ColSpacing

The horizontal distance from one column of copies to the next, in internal units (10,000 per mil).

```csharp
int GetState_ColSpacing();
void SetState_ColSpacing(int argValue);
```

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

The gap between two columns is this value minus the width of the child board. A new embedded board has a column spacing of 1500 mil.

### DocumentPath

The full path of the child PCB document used for the board array.

```csharp
string GetState_DocumentPath();
void SetState_DocumentPath(string argValue);
```

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

When the embedded board belongs to a board, the path is kept relative to the folder of that board's document, and reading it returns the full path resolved against that folder. Setting the path of the document that contains the embedded board clears the stored path.

### Mirror

Whether the copies of the child board are mirrored.

```csharp
bool GetState_Mirror();
void SetState_Mirror(bool argValue);
```

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

Each copy is mirrored about a vertical line through the embedded board's [`XLocation`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#xlocation), before the rotation is applied.

### OriginMode

Which point of the child board is placed at the embedded board's location, the child board's origin (`TEmbeddedBoardOriginMode.eOriginMode_BoardOrigin`) or its bottom-left corner (`TEmbeddedBoardOriginMode.eOriginMode_BottomLeft`).

```csharp
TEmbeddedBoardOriginMode GetState_OriginMode();
void SetState_OriginMode(TEmbeddedBoardOriginMode argValue);
```

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

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

The bottom-left corner is that of the child board's outline, or of the child board's objects when it has no outline. A new embedded board has `TEmbeddedBoardOriginMode.eOriginMode_BottomLeft`.

The origin of the child board is defined in the child PCB document.

**See also:** [TEmbeddedBoardOriginMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TEmbeddedBoardOriginMode.md)

### RowCount

The number of rows of child board copies in the array.

```csharp
int GetState_RowCount();
void SetState_RowCount(int argValue);
```

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

A new embedded board has 1.

### RowSpacing

The vertical distance from one row of copies to the next, in internal units (10,000 per mil).

```csharp
int GetState_RowSpacing();
void SetState_RowSpacing(int argValue);
```

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

The gap between two rows is this value minus the height of the child board. A new embedded board has a row spacing of 2500 mil.

### TransmitLayersEnabled

Whether objects of the child board on a layer pass the embedded board's transmit filter.

```csharp
bool GetState_TransmitLayersEnabled(V7_LayerBase argLayer);
```

**Type:** `bool` · **Access:** read-only · **Index:** `argLayer` ([V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md)): The layer of the child board.

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

On a new embedded board, every layer passes. [`ApplyFilterToIterator`](#applyfiltertoiterator) applies the filter to an iterator.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [ApplyFilterToIterator](#applyfiltertoiterator) | `void` | Applies the embedded board's transmit filter to an iterator, so that the iterator returns only the objects that the filter passes. |
| [GetForbiddenParameterList](#getforbiddenparameterlist) | [IPCB_ParameterList](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ParameterList.md) | Returns the parameters whose transmission from the child board is disabled, or null when there are none. |

### ApplyFilterToIterator

Applies the embedded board's transmit filter to an iterator, so that the iterator returns only the objects that the filter passes.

```csharp
void ApplyFilterToIterator(IPCB_AbstractIterator argIterator);
void ApplyFilterToIterator(object argIterator);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argIterator` | [IPCB_AbstractIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AbstractIterator.md) | value | The iterator to filter, typically one created on [`ChildBoard`](#childboard). |

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

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

Board, spatial and group iterators are supported; any other iterator, or null, is left unchanged. The filter rejects objects on layers for which [`TransmitLayersEnabled`](#transmitlayersenabled) is false and, when the embedded board is set not to transmit them, dimensions, drill tables and layer stack tables.

### GetForbiddenParameterList

Returns the parameters whose transmission from the child board is disabled, or null when there are none.

```csharp
IPCB_ParameterList GetForbiddenParameterList();
```

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

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

## Inherited members

- From [IPCB_RectangularPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md): [IsRedundant](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#isredundant), [RotateAroundXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#rotatearoundxy), [Rotation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#rotation), [SetState_XSizeYSize](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#setstate_xsizeysize), [X1Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#x1location), [X2Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#x2location), [XLocation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#xlocation), [Y1Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#y1location), [Y2Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#y2location), [YLocation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#ylocation)
- From [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md): [AllowGlobalEdit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#allowglobaledit), [BeginModify](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#beginmodify), [Board](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#board), [BoundingRectangle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#boundingrectangle), [BoundingRectangleChildren](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#boundingrectanglechildren), [BoundingRectangleForPainting](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#boundingrectangleforpainting), [BoundingRectangleForSelection](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#boundingrectangleforselection), [CancelModify](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#cancelmodify), [Component](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#component), [Coordinate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#coordinate), [DescriptorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#descriptorstring), [DetailString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#detailstring), [Dimension](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#dimension), [DrawAsPreview](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#drawaspreview), [DRCError](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#drcerror), [Enabled](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled), [Enabled_Direct](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_direct), [Enabled_vComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vcomponent), [Enabled_vCoordinate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vcoordinate), [Enabled_vDimension](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vdimension), [Enabled_vNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vnet), [Enabled_vPolygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vpolygon), [EnableDraw](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabledraw), [EndModify](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#endmodify), [Export_ToParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#export_toparameters), [FlipXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#flipxy), [GraphicallyInvalidate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#graphicallyinvalidate), [Handle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#handle), [Identifier](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#identifier), [InBoard](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#inboard), [InComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#incomponent), [InCoordinate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#incoordinate), [Index](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#index), [InDimension](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#indimension), [InNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#innet), [InPolygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#inpolygon), [InSelectionMemory](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#inselectionmemory), [IsAssyTestPoint_Bottom](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#isassytestpoint_bottom), [IsAssyTestPoint_Top](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#isassytestpoint_top), [IsElectricalPrim](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#iselectricalprim), [IsFreePrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#isfreeprimitive), [IsHidden](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#ishidden), [IsKeepout](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#iskeepout), [IsPreRoute](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#ispreroute), [IsSaveable](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#issaveable), [IsTenting](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istenting), [IsTenting_Bottom](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istenting_bottom), [IsTenting_Top](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istenting_top), [IsTestPoint_Bottom](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istestpoint_bottom), [IsTestPoint_Top](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istestpoint_top), [Layer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#layer), [MiscFlag1](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#miscflag1), [MiscFlag2](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#miscflag2), [MiscFlag3](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#miscflag3), [Moveable](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#moveable), [MoveByXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#movebyxy), [MoveToXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#movetoxy), [Net](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#net), [ObjectID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#objectid), [ObjectIDString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#objectidstring), [PadCacheRobotFlag](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#padcacherobotflag), [PasteMaskExpansion](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#pastemaskexpansion), [Polygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#polygon), [PolygonOutline](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#polygonoutline), [PowerPlaneClearance](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#powerplaneclearance), [PowerPlaneConnectStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#powerplaneconnectstyle), [PowerPlaneReliefExpansion](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#powerplanereliefexpansion), [Preview](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#preview), [ReliefAirGap](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#reliefairgap), [ReliefConductorWidth](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#reliefconductorwidth), [ReliefEntries](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#reliefentries), [Replicate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#replicate), [RequiredParamterSpace](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#requiredparamterspace), [RotateBy](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#rotateby), [Selected](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#selected), [SolderMaskExpansion](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#soldermaskexpansion), [SwapLayerPairs](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#swaplayerpairs), [TearDrop](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#teardrop), [UnionIndex](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#unionindex), [UniqueId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#uniqueid), [UniqueID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#uniqueid-1), [Used](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#used), [UserRouted](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#userrouted), [V7Layer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#v7layer), [ViewableObjectID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#viewableobjectid)
