
# IPCB_LayerObjectIterator interface

An iterator over layers that also gives the layer object at each position.

```csharp
public interface IPCB_LayerObjectIterator : IPCB_LayerIterator
```

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

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

## Remarks

Returned by [`IPCB_Board.LayerIterator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#layeriterator), [`IPCB_Board.LayerIterator_IncludeNonEditable`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#layeriterator_includenoneditable), [`IPCB_Board.SignalLayerIterator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#signallayeriterator), [`IPCB_Board.ElectricalLayerIterator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#electricallayeriterator), [`IPCB_Board.InternalPlaneLayerIterator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#internalplanelayeriterator), [`IPCB_Board.MechanicalLayerIterator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#mechanicallayeriterator), [`IPCB_LayerStackBase.Iterator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerStackBase.md#iterator), [`IPCB_LayerStackBase.Iterator_1`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerStackBase.md#iterator_1) and [`IPCB_LayerStackBase.Iterator_2`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerStackBase.md#iterator_2). The filters and the walk (`First`, `Next`, [`SetBeforeFirst`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#setbeforefirst), `Layer`) are inherited from [`IPCB_LayerIterator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md); [`LayerObject`](#layerobject) adds the whole [`IPCB_LayerObject`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) of the current layer.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [LayerObject](#layerobject) | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | Returns the layer object of the layer at the iterator's current position. |

### LayerObject

Returns the layer object of the layer at the iterator's current position.

```csharp
IPCB_LayerObject LayerObject();
```

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

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

The position is set by `First` and `Next`; read `LayerObject` only after one of them returned `true`.

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

## Inherited members

- From [IPCB_LayerIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md): [AddFilter_ElectricalLayers](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#addfilter_electricallayers), [AddFilter_InternalPlaneLayers](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#addfilter_internalplanelayers), [AddFilter_LayerSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#addfilter_layerset), [AddFilter_LayerSet_1](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#addfilter_layerset_1), [AddFilter_MechanicalLayers](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#addfilter_mechanicallayers), [AddFilter_MiscLayers](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#addfilter_misclayers), [AddFilter_SignalLayers](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#addfilter_signallayers), [First](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#first), [Layer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#layer), [Next](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#next), [SetBeforeFirst](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md#setbeforefirst)

## Returned by

[IPCB_Board.ElectricalLayerIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#electricallayeriterator), [IPCB_Board.InternalPlaneLayerIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#internalplanelayeriterator), [IPCB_Board.LayerIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#layeriterator), [IPCB_Board.LayerIterator_IncludeNonEditable](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#layeriterator_includenoneditable), [IPCB_Board.MechanicalLayerIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#mechanicallayeriterator), [IPCB_Board.SignalLayerIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#signallayeriterator), [IPCB_LayerStackBase.Iterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerStackBase.md#iterator), [IPCB_LayerStackBase.Iterator_1](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerStackBase.md#iterator_1), [IPCB_LayerStackBase.Iterator_2](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerStackBase.md#iterator_2)

## Examples

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