
# IPCB_Net interface

A net on a PCB document, the group of pads, vias, tracks, arcs and connection lines that are electrically connected in the design.

```csharp
public interface IPCB_Net : IPCB_Group
```

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

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

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

## Remarks

Net objects are system generated: the PCB editor creates them from the connectivity of the design. You can retrieve the net of any PCB object that has a net property.

A net is a list of pin to pin connections; their arrangement is called the net topology. By default the PCB editor arranges the pin to pin connections of each net to give the shortest overall connection length. To have control of the arrangement of the pin to pin connections in a net, the PCB editor allows the user to define a set of From-Tos.

## Example

List the names of all nets on the current board.

```csharp
using PCB;

// Retrieve the current board.
IPCB_Board board = PCB.GlobalVars.PCBServer?.GetCurrentPCBBoard();
if (board == null)
    return;

// Create an iterator that looks for net objects only.
IPCB_BoardIterator iterator = board.BoardIterator_Create();
iterator.AddFilter_ObjectSet(new PCB.TObjectSet { TObjectId.eNetObject });
iterator.AddFilter_AllLayers();
iterator.AddFilter_Method(TIterationMethod.eProcessAll);

// Collect the names of the nets.
string ls = "";
for (var net = iterator.FirstPCBObject() as IPCB_Net; net != null; net = iterator.NextPCBObject() as IPCB_Net)
    ls = ls + net.GetState_Name() + ", ";
board.BoardIterator_Destroy(ref iterator);

// Display the net names.
DXP.Utils.ShowInfo("Nets = " + ls, "Nets");
```

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [Color](#color) | `uint` | get; set | The colour of the net. |
| [ConnectivelyInvalid](#connectivelyinvalid) | `bool` | get | Whether the net's connectivity information (connection lines and lengths) is out of date. |
| [ConnectsVisible](#connectsvisible) | `bool` | get; set | Whether the net's connection lines are visible. |
| [InDifferentialPair](#indifferentialpair) | `bool` | get | Whether the net belongs to a differential pair. |
| [IsHighlighted](#ishighlighted) | `bool` | get; set | Whether the net is highlighted. |
| [JumpersVisible](#jumpersvisible) | `bool` | get; set | Whether the jumper links of the net are visible. |
| [LiveHighlightMode](#livehighlightmode) | [TLiveHighlightMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TLiveHighlightMode.md) | get; set | The live highlight mode of the net. |
| [LoopRemoval](#loopremoval) | `bool` | get; set | Whether loop removal is enabled for the net. |
| [Name](#name) | `string` | get; set | The name of the net. |
| [OverrideColorForDraw](#overridecolorfordraw) | `bool` | get; set | Whether the net's primitives are drawn in the net's `Color`. |
| [PinCount](#pincount) | `int` | get | The number of pads in the net. |
| [RoutedLength](#routedlength) | `int` | get | The routed length of the net, in internal units (10,000 per mil). |
| [ViaCount](#viacount) | `int` | get | The number of vias in the net. |

### Color

The colour of the net.

```csharp
uint GetState_Color();
void SetState_Color(uint argColor);
```

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

A new net has the colour of the connection layer. The colour is used to draw the net's primitives only while [`OverrideColorForDraw`](#overridecolorfordraw) is true.

### ConnectivelyInvalid

Whether the net's connectivity information (connection lines and lengths) is out of date.

```csharp
bool GetState_ConnectivelyInvalid();
```

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

Becomes true when a primitive is added to or removed from the net, and when [`ConnectivelyInValidate`](#connectivelyinvalidate) is called; [`RoutedLength`](#routedlength) is then recalculated on its next read. `Rebuild` clears it.

### ConnectsVisible

Whether the net's connection lines are visible.

```csharp
bool GetState_ConnectsVisible();
void SetState_ConnectsVisible(bool argValue);
```

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

A new net has its connection lines visible. Assigning a value only changes the setting and does not update the display; [`HideNetConnects`](#hidenetconnects) and [`ShowNetConnects`](#shownetconnects) change the setting and update the display. While the value is false, `Rebuild` does nothing.

### InDifferentialPair

Whether the net belongs to a differential pair.

```csharp
bool GetState_InDifferentialPair();
```

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

### IsHighlighted

Whether the net is highlighted.

```csharp
bool GetState_IsHighlighted();
void SetState_IsHighlighted(bool argDummy);
```

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

Assigning any value, including false, sets the net's highlight flag; assigning false does not clear the highlight.

### JumpersVisible

Whether the jumper links of the net are visible.

```csharp
bool GetState_JumpersVisible();
void SetState_JumpersVisible(bool argValue);
```

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

A new net has its jumper links visible. Assigning a value only changes the setting and does not redraw the components with jumper pads on the net.

### LiveHighlightMode

The live highlight mode of the net.

```csharp
TLiveHighlightMode GetState_LiveHighlightMode();
void SetState_LiveHighlightMode(TLiveHighlightMode argValue);
```

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

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

A new net has `TLiveHighlightMode.eLiveHighlightMode_None`. Assigning `TLiveHighlightMode.eLiveHighlightMode_High` adds the net to the board's highlighted objects; assigning any other value removes it from them.

### LoopRemoval

Whether loop removal is enabled for the net.

```csharp
bool GetState_LoopRemoval();
void SetState_LoopRemoval(bool argValue);
```

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

A new net has loop removal enabled.

### Name

The name of the net.

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

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

The name is also the net's `Identifier`; [`DescriptorString`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#descriptorstring) returns `Net` followed by a space and the name.

### OverrideColorForDraw

Whether the net's primitives are drawn in the net's `Color`.

```csharp
bool GetState_OverrideColorForDraw();
void SetState_OverrideColorForDraw(bool argValue);
```

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

A new net has the value false.

### PinCount

The number of pads in the net.

```csharp
int GetState_PinCount();
```

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

### RoutedLength

The routed length of the net, in internal units (10,000 per mil).

```csharp
int GetState_RoutedLength();
```

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

The sum of the lengths of the net's tracks and arcs on signal layers and the heights ([`IPCB_Via.Height`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Via.md#height)) of its vias. The value is 0 for a net to which a Supply Nets design rule applies.

### ViaCount

The number of vias in the net.

```csharp
int GetState_ViaCount();
```

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [CancelGroupWarehouseRegistration](#cancelgroupwarehouseregistration) | `void` | Removes a primitive from the net. |
| [ConnectivelyInValidate](#connectivelyinvalidate) | `void` | Marks the net's connectivity information as out of date. |
| [GetLogicalNet](#getlogicalnet) | [IPCB_Group](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md) | Returns the net itself. |
| [Getstate_PadByName](#getstate_padbyname) | [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md) |  |
| [Getstate_PadByPinDescription](#getstate_padbypindescription) | [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md) |  |
| [GetSubnets](#getsubnets) | [IPCB_Group](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md) | Returns a group with the net's subnets, the parts of the net that are electrically connected to each other. |
| [HideNetConnects](#hidenetconnects) | `void` | Hides the net's connection lines. |
| [Rebuild](#rebuild) | `void` | Recalculates the net's connection lines. |
| [RegisterWithGroupWarehouse](#registerwithgroupwarehouse) | `void` | Adds a primitive to the net. |
| [ShowNetConnects](#shownetconnects) | `void` | Shows the net's connection lines. |
| [SubnetIndices_Reset](#subnetindices_reset) | `void` | Recalculates the subnet index of every primitive of the net. |
| [SubnetIndices_Set](#subnetindices_set) | `void` | Recalculates the subnet index of every primitive of the net. |

### CancelGroupWarehouseRegistration

Removes a primitive from the net.

```csharp
void CancelGroupWarehouseRegistration(IPCB_Pad argiPad);
void CancelGroupWarehouseRegistration(object argiPad);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argiPad` | [IPCB_Pad](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Pad.md) | value | The primitive to remove. Any primitive of the net can be passed, not only a pad. |

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

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

Does nothing when the primitive does not belong to this net. Otherwise the primitive's [`InNet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#innet) becomes false and the net's [`ConnectivelyInvalid`](#connectivelyinvalid) becomes true.

To move a primitive to another net, call `CancelGroupWarehouseRegistration` on its current net, assign the primitive's `Net`, then call [`RegisterWithGroupWarehouse`](#registerwithgroupwarehouse) on the new net, between the primitive's [`BeginModify`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#beginmodify) and [`EndModify`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#endmodify).

### ConnectivelyInValidate

Marks the net's connectivity information as out of date.

```csharp
void ConnectivelyInValidate();
```

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

Sets [`ConnectivelyInvalid`](#connectivelyinvalid) to true; `Rebuild` recalculates the connection lines and clears it again.

### GetLogicalNet

Returns the net itself.

```csharp
IPCB_Group GetLogicalNet();
```

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

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

### Getstate_PadByName

*No description yet.*

```csharp
IPCB_Primitive Getstate_PadByName(string argPadName);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPadName` | `string` | value |

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

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

### Getstate_PadByPinDescription

*No description yet.*

```csharp
IPCB_Primitive Getstate_PadByPinDescription(string argPinDes);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPinDes` | `string` | value |

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

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

### GetSubnets

Returns a group with the net's subnets, the parts of the net that are electrically connected to each other.

```csharp
IPCB_Group GetSubnets();
```

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

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

The group is calculated on the first call and kept by the net. It belongs to the net and is discarded when a primitive of the net other than a connection line is added, removed or modified; call the method again afterwards instead of keeping the result.

### HideNetConnects

Hides the net's connection lines.

```csharp
void HideNetConnects();
```

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

Removes the connection lines from the display and sets [`ConnectsVisible`](#connectsvisible) to false. Does nothing when the connection lines are already hidden.

### Rebuild

Recalculates the net's connection lines.

```csharp
void Rebuild();
```

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

Clears [`ConnectivelyInvalid`](#connectivelyinvalid). Does nothing while [`ConnectsVisible`](#connectsvisible) is false.

### RegisterWithGroupWarehouse

Adds a primitive to the net.

```csharp
void RegisterWithGroupWarehouse(IPCB_Pad argiPad);
void RegisterWithGroupWarehouse(object argiPad);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argiPad` | [IPCB_Pad](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Pad.md) | value | The primitive to add. Any primitive can be passed, not only a pad. |

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

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

The primitive's `Net` becomes this net, its [`InNet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#innet) becomes true and the net's [`ConnectivelyInvalid`](#connectivelyinvalid) becomes true. Nothing is added for a text object, or for a primitive that is not on a signal layer, the multi-layer or the connection layer; the primitive's `Net` is cleared instead. Nothing is added either while the primitive's [`InNet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#innet) is true, that is, while it still belongs to a net.

To move a primitive to another net, call [`CancelGroupWarehouseRegistration`](#cancelgroupwarehouseregistration) on its current net, assign the primitive's `Net`, then call `RegisterWithGroupWarehouse` on the new net, between the primitive's [`BeginModify`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#beginmodify) and [`EndModify`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#endmodify).

### ShowNetConnects

Shows the net's connection lines.

```csharp
void ShowNetConnects();
```

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

Sets [`ConnectsVisible`](#connectsvisible) to true and adds the connection lines to the display. Does nothing when the connection lines are already visible.

### SubnetIndices_Reset

Recalculates the subnet index of every primitive of the net.

```csharp
void SubnetIndices_Reset();
```

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

Does the same as [`SubnetIndices_Set`](#subnetindices_set); it does not leave the indices cleared.

### SubnetIndices_Set

Recalculates the subnet index of every primitive of the net.

```csharp
void SubnetIndices_Set();
```

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

Clears the indices first, then gives each primitive the index of the subnet (the electrically connected part of the net) that it belongs to.

## Inherited members

- From [IPCB_Group](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md): [AddPCBObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#addpcbobject), [FastSetState_XSizeYSize](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#fastsetstate_xsizeysize), [FreePrimitives](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#freeprimitives), [GetPrimitiveAt](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#getprimitiveat), [GetPrimitiveCount](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#getprimitivecount), [GroupIterator_Create](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#groupiterator_create), [GroupIterator_Destroy](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#groupiterator_destroy), [LayerUsed](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#layerused), [PrimitiveLock](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#primitivelock), [RemovePCBObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#removepcbobject), [ReplicateWithChildren](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#replicatewithchildren), [SetState_LayersUsedArray](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#setstate_layersusedarray), [SetState_XSizeYSize](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#setstate_xsizeysize), [XLocation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#xlocation), [YLocation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.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)

## Returned by

[IPCB_CopperBody.Net](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_CopperBody.md#net), [IPCB_DifferentialPair.NegativeNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_DifferentialPair.md#negativenet), [IPCB_DifferentialPair.PositiveNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_DifferentialPair.md#positivenet), [IPCB_FromTo.GetNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_FromTo.md#getnet), [IPCB_Primitive.Net](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#net)

## Accepted by

[IPCB_Board.AnalyzeNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#analyzenet), [IPCB_Board.CleanNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#cleannet), [IPCB_Board.NetNameIsUnique](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#netnameisunique), [IPCB_ConnectivityGraph.RebuildNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ConnectivityGraph.md#rebuildnet), [IPCB_PinPairsManager.SwapPins](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PinPairsManager.md#swappins), [IPCB_SMDToPlaneConstraint.IsInternalPlaneNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_SMDToPlaneConstraint.md#isinternalplanenet)
