
# IPCB_SharedUnion interface

*No description yet.*

```csharp
public interface IPCB_SharedUnion
```

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

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [ActiveLayer](#activelayer) | [V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md) | get |  |
| [ID](#id) | `int` | get |  |
| [LayerIsVisible](#layerisvisible) | `bool` | get; set |  |
| [OwnerPrimitive](#ownerprimitive) | [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md) | get; set |  |
| [PrimitiveLockOnLayer](#primitivelockonlayer) | `bool` | get |  |
| [Primitives](#primitives) | [IPCB_PrimitiveList](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PrimitiveList.md) | get |  |
| [RotateAroundXY](#rotatearoundxy) | `double` | set |  |

### ActiveLayer

*No description yet.*

```csharp
V7_LayerBase GetState_ActiveLayer();
```

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

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

### ID

*No description yet.*

```csharp
int GetState_ID();
```

**Type:** `int` · **Access:** read-only

### LayerIsVisible

*No description yet.*

```csharp
bool GetState_LayerIsVisible(V7_LayerBase argLayer);
void SetState_LayerIsVisible(V7_LayerBase argLayer, bool argValue);
```

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

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

### OwnerPrimitive

*No description yet.*

```csharp
IPCB_Primitive GetState_OwnerPrimitive();
void SetState_OwnerPrimitive(IPCB_Primitive argValue);
```

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

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

### PrimitiveLockOnLayer

*No description yet.*

```csharp
bool GetState_PrimitiveLockOnLayer(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 accessors are extension methods of `IPCB_SharedUnionHelper` (`using PCB;`).

### Primitives

*No description yet.*

```csharp
IPCB_PrimitiveList GetState_Primitives();
```

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

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

### RotateAroundXY

*No description yet.*

```csharp
void SetState_RotateAroundXY(int argX, int argY, double argRotationAngle);
```

**Type:** `double` · **Access:** write-only · **Index:** `argX` (`int`), `argY` (`int`)

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [BeginModify](#beginmodify) | `void` |  |
| [CancelEditing](#cancelediting) | `void` |  |
| [CancelModify](#cancelmodify) | `void` |  |
| [CancelRegistrationOnBoard](#cancelregistrationonboard) | `void` |  |
| [ClearLayersLock](#clearlayerslock) | `void` |  |
| [ClearPrimitive](#clearprimitive) | `void` |  |
| [EditPrimitiveOnLayer](#editprimitiveonlayer) | `void` |  |
| [EndModify](#endmodify) | `void` |  |
| [HidePrimitivesOnLayer](#hideprimitivesonlayer) | `void` |  |
| [LinkPrimitive](#linkprimitive) | `void` |  |
| [MoveByXY](#movebyxy) | `void` |  |
| [MoveByXYPrimitivesOnLayer](#movebyxyprimitivesonlayer) | `void` |  |
| [RegisterOnBoard](#registeronboard) | `void` |  |
| [Replicate](#replicate) | [IPCB_SharedUnion](#) |  |
| [ResetTransormToLastStateOnLayer](#resettransormtolaststateonlayer) | `void` |  |
| [RotateAroundXYPrimitivesOnLayer](#rotatearoundxyprimitivesonlayer) | `void` |  |
| [ShowPrimitivesOnLayer](#showprimitivesonlayer) | `void` |  |
| [SwapLayersIfNeeded](#swaplayersifneeded) | `void` |  |
| [UnLinkAllPrimitives](#unlinkallprimitives) | `void` |  |
| [UnLinkPrimitive](#unlinkprimitive) | `void` |  |
| [UpdateLayerVisibility](#updatelayervisibility) | `void` |  |

### BeginModify

*No description yet.*

```csharp
void BeginModify(bool argDoPushState, IPCB_Primitive argPrimitive);
void BeginModify(bool argDoPushState, object argPrimitive);
```

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

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

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

### CancelEditing

*No description yet.*

```csharp
void CancelEditing();
```

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

### CancelModify

*No description yet.*

```csharp
void CancelModify(bool argDoPopState, IPCB_Primitive argPrimitive);
void CancelModify(bool argDoPopState, object argPrimitive);
```

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

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

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

### CancelRegistrationOnBoard

*No description yet.*

```csharp
void CancelRegistrationOnBoard();
```

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

### ClearLayersLock

*No description yet.*

```csharp
void ClearLayersLock();
```

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

### ClearPrimitive

*No description yet.*

```csharp
void ClearPrimitive(IPCB_Primitive argPrimitive);
void ClearPrimitive(object argPrimitive);
```

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

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

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

### EditPrimitiveOnLayer

*No description yet.*

```csharp
void EditPrimitiveOnLayer(V7_LayerBase argLayer);
void EditPrimitiveOnLayer(IV7_Layer argLayer);
```

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

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

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

### EndModify

*No description yet.*

```csharp
void EndModify(IPCB_Primitive argPrimitive);
void EndModify(object argPrimitive);
```

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

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

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

### HidePrimitivesOnLayer

*No description yet.*

```csharp
void HidePrimitivesOnLayer(V7_LayerBase argLayer);
void HidePrimitivesOnLayer(IV7_Layer argLayer);
```

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

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

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

### LinkPrimitive

*No description yet.*

```csharp
void LinkPrimitive(IPCB_Primitive argValue);
void LinkPrimitive(object argValue);
```

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

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

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

### MoveByXY

*No description yet.*

```csharp
void MoveByXY(int argX, int argY);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argX` | `int` | value |
| `argY` | `int` | value |

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

### MoveByXYPrimitivesOnLayer

*No description yet.*

```csharp
void MoveByXYPrimitivesOnLayer(V7_LayerBase argLayer, int argX, int argY);
void MoveByXYPrimitivesOnLayer(IV7_Layer argLayer, int argX, int argY);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argLayer` | [V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md) | value |
| `argX` | `int` | value |
| `argY` | `int` | value |

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

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

### RegisterOnBoard

*No description yet.*

```csharp
void RegisterOnBoard();
```

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

### Replicate

*No description yet.*

```csharp
IPCB_SharedUnion Replicate();
```

**Returns:** [IPCB_SharedUnion](#)

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

### ResetTransormToLastStateOnLayer

*No description yet.*

```csharp
void ResetTransormToLastStateOnLayer(V7_LayerBase argLayer);
void ResetTransormToLastStateOnLayer(IV7_Layer argLayer);
```

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

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

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

### RotateAroundXYPrimitivesOnLayer

*No description yet.*

```csharp
void RotateAroundXYPrimitivesOnLayer(V7_LayerBase argLayer, int argX, int argY, double argRotation);
void RotateAroundXYPrimitivesOnLayer(IV7_Layer argLayer, int argX, int argY, double argRotation);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argLayer` | [V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md) | value |
| `argX` | `int` | value |
| `argY` | `int` | value |
| `argRotation` | `double` | value |

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

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

### ShowPrimitivesOnLayer

*No description yet.*

```csharp
void ShowPrimitivesOnLayer(V7_LayerBase argLayer);
void ShowPrimitivesOnLayer(IV7_Layer argLayer);
```

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

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

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

### SwapLayersIfNeeded

*No description yet.*

```csharp
void SwapLayersIfNeeded();
```

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

### UnLinkAllPrimitives

*No description yet.*

```csharp
void UnLinkAllPrimitives();
```

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

### UnLinkPrimitive

*No description yet.*

```csharp
void UnLinkPrimitive(IPCB_Primitive argValue);
void UnLinkPrimitive(object argValue);
```

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

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

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

### UpdateLayerVisibility

*No description yet.*

```csharp
void UpdateLayerVisibility();
```

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

## Returned by

[IPCB_Primitive2.SharedUnion](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive2.md#sharedunion)
