
# IPCB_LayerStackBase interface

*No description yet.*

```csharp
public interface IPCB_LayerStackBase
```

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

**Derived:** [IPCB_LayerStack](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerStack.md), [IPCB_MasterLayerStack](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_MasterLayerStack.md)

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [IsFlex](#isflex) | `bool` | get; set |  |
| [Name](#name) | `string` | get; set |  |
| [ZBottom](#zbottom) | `int` | get |  |
| [ZTop](#ztop) | `int` | get |  |

### IsFlex

*No description yet.*

```csharp
bool GetState_IsFlex();
void SetState_IsFlex(bool argValue);
```

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

### Name

*No description yet.*

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

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

### ZBottom

*No description yet.*

```csharp
int Get_ZBottom(IPCB_LayerObject argLayer);
```

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

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

### ZTop

*No description yet.*

```csharp
int Get_ZTop(IPCB_LayerObject argLayer);
```

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

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [Count](#count) | `int` |  |
| [Count_1](#count_1) | `int` |  |
| [Count_2](#count_2) | `int` |  |
| [First](#first) | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) |  |
| [ID](#id) | `string` |  |
| [Iterator](#iterator) | [IPCB_LayerObjectIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObjectIterator.md) |  |
| [Iterator_1](#iterator_1) | [IPCB_LayerObjectIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObjectIterator.md) |  |
| [Iterator_2](#iterator_2) | [IPCB_LayerObjectIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObjectIterator.md) |  |
| [Last](#last) | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) |  |
| [Next](#next) | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) |  |
| [Previous](#previous) | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) |  |
| [StateID](#stateid) | `int` |  |

### Count

*No description yet.*

```csharp
int Count();
```

**Returns:** `int`

### Count_1

*No description yet.*

```csharp
int Count_1(TLayerClassID argT);
int Count_1(int argT);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argT` | [TLayerClassID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerClassID.md) | value |

**Returns:** `int`

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

### Count_2

*No description yet.*

```csharp
int Count_2(TLayerClassID argT, IPCB_LayerObject argStart, IPCB_LayerObject argStop);
int Count_2(int argT, object argStart, object argStop);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argT` | [TLayerClassID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerClassID.md) | value |
| `argStart` | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | value |
| `argStop` | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | value |

**Returns:** `int`

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

### First

*No description yet.*

```csharp
IPCB_LayerObject First(TLayerClassID argT);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argT` | [TLayerClassID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerClassID.md) | value |

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

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

### ID

*No description yet.*

```csharp
string ID();
```

**Returns:** `string`

### Iterator

*No description yet.*

```csharp
IPCB_LayerObjectIterator Iterator();
```

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

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

### Iterator_1

*No description yet.*

```csharp
IPCB_LayerObjectIterator Iterator_1(TLayerClassID argT);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argT` | [TLayerClassID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerClassID.md) | value |

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

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

### Iterator_2

*No description yet.*

```csharp
IPCB_LayerObjectIterator Iterator_2(TLayerClassID argT, IPCB_LayerObject argStart, IPCB_LayerObject argStop);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argT` | [TLayerClassID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerClassID.md) | value |
| `argStart` | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | value |
| `argStop` | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | value |

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

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

### Last

*No description yet.*

```csharp
IPCB_LayerObject Last(TLayerClassID argT);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argT` | [TLayerClassID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerClassID.md) | value |

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

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

### Next

*No description yet.*

```csharp
IPCB_LayerObject Next(TLayerClassID argT, IPCB_LayerObject argRefLayer);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argT` | [TLayerClassID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerClassID.md) | value |
| `argRefLayer` | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | value |

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

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

### Previous

*No description yet.*

```csharp
IPCB_LayerObject Previous(TLayerClassID argT, IPCB_LayerObject argRefLayer);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argT` | [TLayerClassID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLayerClassID.md) | value |
| `argRefLayer` | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | value |

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

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

### StateID

*No description yet.*

```csharp
int StateID();
```

**Returns:** `int`

## Returned by

[IPCB_LayerObject.LayerStack](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md#layerstack)
