
# IPCB_Via interface

A via on a PCB document, a drilled and usually plated hole that carries a signal from one layer to another.

```csharp
public interface IPCB_Via : IPCB_Primitive
```

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

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

## Remarks

Vias are like round pads, which are drilled and usually through-plated when the board is fabricated. Vias can be multi-layered, blind or buried.

A multi-layer via passes through the board from the top layer to the bottom layer and allows connections to all other signal layers.

A blind via connects from the surface of the board to an internal layer, a buried via connects from one internal layer to another internal layer.

## Example

Create a via with custom pad cache settings on a new PCB document.

```csharp
using DXP;
using PCB;

// Create a new PCB document.
var workspace = DXP.GlobalVars.Client.GetDXPWorkspace() as EDP.IWorkspace;
if (workspace == null)
    return;
workspace.DM_CreateNewDocument("PCB");

// Check whether the new PCB document exists.
IPCB_ServerInterface pcbServer = PCB.GlobalVars.PCBServer;
IPCB_Board board = pcbServer?.GetCurrentPCBBoard();
if (board == null)
    return;

// Create a via object.
var via = pcbServer.PCBObjectFactory(TObjectId.eViaObject, TDimensionKind.eNoDimension, TObjectCreationMode.eCreate_Default) as IPCB_Via;
via.SetState_XLocation(EDP.Utils.MilsToCoord(2000));
via.SetState_YLocation(EDP.Utils.MilsToCoord(2000));
via.SetState_Size(EDP.Utils.MilsToCoord(50));
via.SetState_HoleSize(EDP.Utils.MilsToCoord(20));
via.SetState_LowLayer(new V7_Layer(TV6_Layer.eV6_TopLayer));
via.SetState_HighLayer(new V7_Layer(TV6_Layer.eV6_BottomLayer));

// Set up a pad cache.
V7_PadCache viaCache = via.GetState_Cache();
viaCache.ReliefAirGap = EDP.Utils.MilsToCoord(11);
viaCache.PowerPlaneReliefExpansion = EDP.Utils.MilsToCoord(11);
viaCache.PowerPlaneClearance = EDP.Utils.MilsToCoord(11);
viaCache.ReliefConductorWidth = EDP.Utils.MilsToCoord(11);
viaCache.SolderMaskExpansion = EDP.Utils.MilsToCoord(11);
viaCache.SolderMaskExpansionValid = TCacheState.eCacheManual;
viaCache.PasteMaskExpansion = EDP.Utils.MilsToCoord(11);
viaCache.PasteMaskExpansionValid = TCacheState.eCacheManual;

// Assign the new via cache to the via.
via.SetState_Cache(viaCache);
board.AddPCBObject(via);

// Refresh the PCB document.
string parameters = "";
DXP.Utils.SetParamterValue(ref parameters, "Action", "All");
DXP.Utils.RunCommand("PCB:Zoom", parameters);
```

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [Cache](#cache) | [V7_PadCache](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_PadCache.md) | get; set | The via's cache of values derived from design rules, such as solder mask expansion, power plane clearance, relief air gap and relief conductor width. |
| [Height](#height) | `int` | get | The vertical length of the via, in internal units (10,000 per mil). |
| [HighLayer](#highlayer) | [V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md) | get; set | One end layer of the via's span; together with [`LowLayer`](#lowlayer) it defines the layers the via passes through. |
| [HoleNegativeTolerance](#holenegativetolerance) | `int` | get; set | The negative tolerance of the via's hole size, in internal units (10,000 per mil). |
| [HolePositiveTolerance](#holepositivetolerance) | `int` | get; set | The positive tolerance of the via's hole size, in internal units (10,000 per mil). |
| [HoleSize](#holesize) | `int` | get; set | The diameter of the via's drilled hole, in internal units (10,000 per mil). |
| [IsConnectedToPlane](#isconnectedtoplane) | `bool` | get; set | Whether the via is connected to the given internal plane layer. |
| [LowLayer](#lowlayer) | [V7_LayerBase](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/V7_LayerBase.md) | get; set | One end layer of the via's span; together with [`HighLayer`](#highlayer) it defines the layers the via passes through. |
| [Mode](#mode) | [TPadMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TPadMode.md) | get; set | How the via's copper size is defined on its layers. |
| [ShapeOnLayer](#shapeonlayer) | [TShape](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TShape.md) | get | The shape of the via on the given layer; a via can have different shapes on the layers it connects. |
| [Size](#size) | `int` | get; set | The diameter of the via, in internal units (10,000 per mil). |
| [SizeOnLayer](#sizeonlayer) | `int` | get; set | The copper diameter of the via on the given layer, in internal units (10,000 per mil). |
| [SolderMaskExpansionFromHoleEdge](#soldermaskexpansionfromholeedge) | `bool` | get; set | Whether the via's solder mask expansion is measured from the edge of the hole instead of the edge of the copper. |
| [StackSizeOnLayer](#stacksizeonlayer) | `int` | get; set | The copper size stored for the via on the given layer, in internal units (10,000 per mil). |
| [StartLayer](#startlayer) | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | get | The upper end layer of the via in the layer stack, the one of [`LowLayer`](#lowlayer) and [`HighLayer`](#highlayer) that is higher. |
| [StopLayer](#stoplayer) | [IPCB_LayerObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerObject.md) | get | The lower end layer of the via in the layer stack, the one of [`LowLayer`](#lowlayer) and [`HighLayer`](#highlayer) that is lower. |
| [TemplateLink](#templatelink) | [IPCB_PadViaTemplateLink](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PadViaTemplateLink.md) | get |  |
| [XLocation](#xlocation) | `int` | get; set | The X coordinate of the via's center, in internal units (10,000 per mil). |
| [YLocation](#ylocation) | `int` | get; set | The Y coordinate of the via's center, in internal units (10,000 per mil). |

### Cache

The via's cache of values derived from design rules, such as solder mask expansion, power plane clearance, relief air gap and relief conductor width.

```csharp
V7_PadCache GetState_Cache();
void SetState_Cache(V7_PadCache argValue);
```

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

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

Assigning a cache does not change the via's tenting settings; they keep their previous values.

### Height

The vertical length of the via, in internal units (10,000 per mil).

```csharp
int GetState_Height();
```

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

For a via without a net it is the distance from the top of [`LowLayer`](#lowlayer) to the bottom of [`HighLayer`](#highlayer). For a via in a net it is the distance between the middles of the outermost layers on which tracks, arcs, pads or vias of the same net touch the via; it is 0 when nothing touches the via, and the distance between the middles of [`StartLayer`](#startlayer) and [`StopLayer`](#stoplayer) when the via is touched on one layer only. Vias placed by via stitching or via shielding have a height of 0.

### HighLayer

One end layer of the via's span; together with [`LowLayer`](#lowlayer) it defines the layers the via passes through.

```csharp
V7_LayerBase GetState_HighLayer();
void SetState_HighLayer(V7_LayerBase argL);
```

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

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

For a through-hole via, [`LowLayer`](#lowlayer) is the top layer and `HighLayer` is the bottom layer. The two ends can be given in either order: [`StartLayer`](#startlayer) and [`StopLayer`](#stoplayer) return the upper and the lower of them in the layer stack. Only electrical layers are accepted; assigning any other layer leaves the value unchanged.

### HoleNegativeTolerance

The negative tolerance of the via's hole size, in internal units (10,000 per mil).

```csharp
int GetState_HoleNegativeTolerance();
void SetState_HoleNegativeTolerance(int argValue);
```

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

A negative value is stored as its absolute value.

### HolePositiveTolerance

The positive tolerance of the via's hole size, in internal units (10,000 per mil).

```csharp
int GetState_HolePositiveTolerance();
void SetState_HolePositiveTolerance(int argValue);
```

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

A negative value is stored as its absolute value.

### HoleSize

The diameter of the via's drilled hole, in internal units (10,000 per mil).

```csharp
int GetState_HoleSize();
void SetState_HoleSize(int argValue);
```

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

### IsConnectedToPlane

Whether the via is connected to the given internal plane layer.

```csharp
bool GetState_IsConnectedToPlane(TV6_Layer argLayer);
void SetState_IsConnectedToPlane(TV6_Layer argLayer, bool argValue);
```

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

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

Returns false for a layer that is not an internal plane layer, and while the via's plane connections have not been calculated (`PlanesValid` of `Cache` is `TCacheState.eCacheInvalid`). Assigning a value for a layer that is not an internal plane layer does nothing.

### LowLayer

One end layer of the via's span; together with [`HighLayer`](#highlayer) it defines the layers the via passes through.

```csharp
V7_LayerBase GetState_LowLayer();
void SetState_LowLayer(V7_LayerBase argL);
```

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

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

For a through-hole via, `LowLayer` is the top layer and [`HighLayer`](#highlayer) is the bottom layer. The two ends can be given in either order: [`StartLayer`](#startlayer) and [`StopLayer`](#stoplayer) return the upper and the lower of them in the layer stack. Only electrical layers are accepted; assigning any other layer leaves the value unchanged.

### Mode

How the via's copper size is defined on its layers.

```csharp
TPadMode GetState_Mode();
void SetState_Mode(TPadMode argMode);
```

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

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

Assigning `Size` sets the mode to `TPadMode.ePadMode_Simple`.

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

### ShapeOnLayer

The shape of the via on the given layer; a via can have different shapes on the layers it connects.

```csharp
TShape GetState_ShapeOnLayer(V7_LayerBase argLayer);
```

**Type:** [TShape](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TShape.md) · **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_ViaHelper` (`using PCB;`).

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

### Size

The diameter of the via, in internal units (10,000 per mil).

```csharp
int GetState_Size();
void SetState_Size(int argSize);
```

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

Reading returns the largest copper size on the signal layers from [`StartLayer`](#startlayer) to [`StopLayer`](#stoplayer). Assigning a value greater than 0 gives the via that size on all layers and sets `Mode` to `TPadMode.ePadMode_Simple`; a value of 0 or less is ignored.

### SizeOnLayer

The copper diameter of the via on the given layer, in internal units (10,000 per mil).

```csharp
int GetState_SizeOnLayer(V7_LayerBase argLayer);
void SetState_SizeOnLayer(V7_LayerBase argLayer, int argSize);
```

**Type:** `int` · **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_ViaHelper` (`using PCB;`).

Assigning a value sets [`StackSizeOnLayer`](#stacksizeonlayer) for that layer.

### SolderMaskExpansionFromHoleEdge

Whether the via's solder mask expansion is measured from the edge of the hole instead of the edge of the copper.

```csharp
bool GetState_SolderMaskExpansionFromHoleEdge();
void SetState_SolderMaskExpansionFromHoleEdge(bool argValue);
```

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

The setting applies only to a via that reaches the top or bottom layer and whose solder mask expansion is set manually; when the expansion comes from the design rules, the applicable rule decides.

### StackSizeOnLayer

The copper size stored for the via on the given layer, in internal units (10,000 per mil).

```csharp
int GetState_StackSizeOnLayer(V7_LayerBase argLayer);
void SetState_StackSizeOnLayer(V7_LayerBase argLayer, int argSize);
```

**Type:** `int` · **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_ViaHelper` (`using PCB;`).

Returns 0 for a layer that is not a signal layer. Assigning [`SizeOnLayer`](#sizeonlayer) for a layer sets this value.

### StartLayer

The upper end layer of the via in the layer stack, the one of [`LowLayer`](#lowlayer) and [`HighLayer`](#highlayer) that is higher.

```csharp
IPCB_LayerObject GetState_StartLayer();
```

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

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

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

### StopLayer

The lower end layer of the via in the layer stack, the one of [`LowLayer`](#lowlayer) and [`HighLayer`](#highlayer) that is lower.

```csharp
IPCB_LayerObject GetState_StopLayer();
```

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

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

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

### TemplateLink

*No description yet.*

```csharp
IPCB_PadViaTemplateLink GetState_TemplateLink();
```

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

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

### XLocation

The X coordinate of the via's center, in internal units (10,000 per mil).

```csharp
int GetState_XLocation();
void SetState_XLocation(int argX);
```

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

### YLocation

The Y coordinate of the via's center, in internal units (10,000 per mil).

```csharp
int GetState_YLocation();
void SetState_YLocation(int argY);
```

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [ClearStackSizes](#clearstacksizes) | `void` | Removes all per-layer copper sizes stored for the via. |
| [DefinitionLayerIterator](#definitionlayeriterator) | [IPCB_LayerIterator](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerIterator.md) | Returns an iterator over the layers for which the via has a copper size stored. |
| [GetCounterHole_Params](#getcounterhole_params) | [IPCB_CounterHoleParams](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_CounterHoleParams.md) |  |
| [IntersectLayer](#intersectlayer) | `bool` | Returns whether the via passes through the given layer. |
| [IsCounterHole](#iscounterhole) | `bool` |  |
| [PlaneConnectionStyleForLayer](#planeconnectionstyleforlayer) | [TPlaneConnectionStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TPlaneConnectionStyle.md) | Returns how the via connects to the given internal plane layer. |
| [RotateAroundXY](#rotatearoundxy) | `void` | Rotates the via about a point. |

### ClearStackSizes

Removes all per-layer copper sizes stored for the via.

```csharp
void ClearStackSizes();
```

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

### DefinitionLayerIterator

Returns an iterator over the layers for which the via has a copper size stored.

```csharp
IPCB_LayerIterator DefinitionLayerIterator();
```

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

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

### GetCounterHole_Params

*No description yet.*

```csharp
IPCB_CounterHoleParams GetCounterHole_Params();
```

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

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

### IntersectLayer

Returns whether the via passes through the given layer.

```csharp
bool IntersectLayer(V7_LayerBase argLayer);
bool IntersectLayer(IV7_Layer argLayer);
```

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

**Returns:** `bool`

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

Returns true for an electrical layer within the via's span from [`LowLayer`](#lowlayer) to [`HighLayer`](#highlayer), and for the multi-layer and the keep-out layer; returns false for any other layer.

### IsCounterHole

*No description yet.*

```csharp
bool IsCounterHole();
```

**Returns:** `bool`

### PlaneConnectionStyleForLayer

Returns how the via connects to the given internal plane layer.

```csharp
TPlaneConnectionStyle PlaneConnectionStyleForLayer(TV6_Layer argLayer);
```

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

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

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

The style of the connection comes from the applicable Power Plane Connect Style design rule: `TPlaneConnectionStyle.ePlaneReliefConnect` (a thermal relief connection) or `TPlaneConnectionStyle.ePlaneDirectConnect` (solid copper).

The method returns `TPlaneConnectionStyle.ePlaneNoConnect` when the layer is not an internal plane layer, when the via has no net, when the via does not pass through the layer, or when the via is not connected to the plane on that layer.

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

### RotateAroundXY

Rotates the via about a point.

```csharp
void RotateAroundXY(int argX, int argY, double argngle);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argX` | `int` | value | The X coordinate of the point to rotate about, in internal units (10,000 per mil). |
| `argY` | `int` | value | The Y coordinate of the point to rotate about, in internal units (10,000 per mil). |
| `argngle` | `double` | value | The rotation angle, in degrees. |

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

The via's center ([`XLocation`](#xlocation), [`YLocation`](#ylocation)) is moved by the rotation. Passing the via's own center as the point leaves the via where it is.

## Inherited members

- 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)

## Accepted by

[IPCB_ContourMaker.MakeContour_4](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ContourMaker.md#makecontour_4), [IPCB_ContourMaker2.MakeContour_14](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ContourMaker2.md#makecontour_14)
