
# IPCB_Coordinate interface

A coordinate marker on a PCB document: a cross of two tracks at a point and a text that shows the X and Y coordinates of that point.

```csharp
public interface IPCB_Coordinate : 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)

## Remarks

A coordinate is a group with three child primitives: the text (`Text`), the horizontal track (`Track1`) and the vertical track (`Track2`). The marked point is the group's [`XLocation`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#xlocation) and [`YLocation`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Group.md#ylocation); the children are placed on the coordinate's `Layer`. The text is placed at the right end of the horizontal track and shows the location relative to the board origin, in the board's `DisplayUnit`, formatted as set by `Style`. It is empty when the coordinate does not belong to a board.

[`SetState_XSizeYSize_1`](#setstate_xsizeysize_1) regenerates the children from the coordinate's properties only when the location or the layer has changed since the last regeneration, or when its TrueType text must be rebuilt. Changing only a size, style or font property therefore does not regenerate the marker. [`MoveByXY`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#movebyxy) moves the coordinate and regenerates the children.

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [Bold](#bold) | `bool` | get; set | Whether the text of the coordinate is bold when it uses a TrueType font. |
| [FontName](#fontname) | `string` | get; set | The name of the TrueType font of the coordinate's text, for example Arial or Courier New. |
| [Italic](#italic) | `bool` | get; set | Whether the text of the coordinate is italic when it uses a TrueType font. |
| [LineWidth](#linewidth) | `int` | get; set | The width of the two tracks of the coordinate's cross, in internal units (10,000 per mil). |
| [Rotation](#rotation) | `double` | get; set | The rotation of the coordinate's text, in degrees. |
| [Size](#size) | `int` | get; set | Half the length of each track of the coordinate's cross, in internal units (10,000 per mil). |
| [StrictHitTest](#stricthittest) | `bool` | get | Whether the given point hits the text or one of the tracks of the coordinate. |
| [Style](#style) | [TUnitStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TUnitStyle.md) | get; set | How the text of the coordinate shows the units of the X and Y values. |
| [TextFont](#textfont) | `short` | get; set | The stroke font of the coordinate's text. |
| [TextHeight](#textheight) | `int` | get; set | The height of the coordinate's text, in internal units (10,000 per mil). |
| [TextWidth](#textwidth) | `int` | get; set | The stroke width of the coordinate's text, in internal units (10,000 per mil). |
| [UseTTFonts](#usettfonts) | `bool` | get; set | Whether the text of the coordinate uses a TrueType font ([`FontName`](#fontname), `Bold`, `Italic`) rather than the stroke font [`TextFont`](#textfont). |

### Bold

Whether the text of the coordinate is bold when it uses a TrueType font.

```csharp
bool GetState_Bold();
void SetState_Bold(bool argBold);
```

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

A new coordinate is not bold.

### FontName

The name of the TrueType font of the coordinate's text, for example Arial or Courier New.

```csharp
string GetState_FontName();
void SetState_FontName(string argFontName);
```

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

The value is used when [`UseTTFonts`](#usettfonts) is true. A new coordinate uses Arial.

### Italic

Whether the text of the coordinate is italic when it uses a TrueType font.

```csharp
bool GetState_Italic();
void SetState_Italic(bool argItalic);
```

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

A new coordinate is not italic.

### LineWidth

The width of the two tracks of the coordinate's cross, in internal units (10,000 per mil).

```csharp
int GetState_LineWidth();
void SetState_LineWidth(int argValue);
```

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

A new coordinate has a line width of 10 mil.

### Rotation

The rotation of the coordinate's text, in degrees.

```csharp
double GetState_Rotation();
void SetState_Rotation(double argValue);
```

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

Only the text is rotated; the tracks of the cross stay horizontal and vertical. A new coordinate has a rotation of 0.

### Size

Half the length of each track of the coordinate's cross, in internal units (10,000 per mil).

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

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

Each track extends by `Size` on both sides of the marked point, and the text starts `Size` to the right of it. When the value is less than 10 (0.001 mil), the tracks extend by 1 mil instead. A new coordinate has a size of 10 mil.

### StrictHitTest

Whether the given point hits the text or one of the tracks of the coordinate.

```csharp
bool GetState_StrictHitTest(int argHitX, int argHitY);
```

**Type:** `bool` · **Access:** read-only · **Index:** `argHitX` (`int`): The X coordinate of the point, in internal units (10,000 per mil)., `argHitY` (`int`): The Y coordinate of the point, in internal units (10,000 per mil).

### Style

How the text of the coordinate shows the units of the X and Y values.

```csharp
TUnitStyle GetState_Style();
void SetState_Style(TUnitStyle argValue);
```

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

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

With `TUnitStyle.eNoUnits` the text shows the two values separated by a comma, without units. With `TUnitStyle.eYesUnits` each value has its unit. With `TUnitStyle.eParenthUnits` the values are followed by "(mm)" when the board's `DisplayUnit` is `TUnit.eMetric`, otherwise by "(mil)". A new coordinate uses `TUnitStyle.eParenthUnits`.

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

### TextFont

The stroke font of the coordinate's text.

```csharp
short GetState_TextFont();
void SetState_TextFont(short argValue);
```

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

A new coordinate uses font 1.

### TextHeight

The height of the coordinate's text, in internal units (10,000 per mil).

```csharp
int GetState_TextHeight();
void SetState_TextHeight(int argValue);
```

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

A new coordinate has a text height of 60 mil.

### TextWidth

The stroke width of the coordinate's text, in internal units (10,000 per mil).

```csharp
int GetState_TextWidth();
void SetState_TextWidth(int argValue);
```

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

A new coordinate has a text width of 6 mil.

### UseTTFonts

Whether the text of the coordinate uses a TrueType font ([`FontName`](#fontname), `Bold`, `Italic`) rather than the stroke font [`TextFont`](#textfont).

```csharp
bool GetState_UseTTFonts();
void SetState_UseTTFonts(bool argUseTTFonts);
```

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

A new coordinate uses the stroke font.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [RotateAroundXY](#rotatearoundxy) | `void` | Does nothing for a coordinate. |
| [SetState_XSizeYSize_1](#setstate_xsizeysize_1) | `bool` | Regenerates the text and the tracks of the coordinate from its properties and recalculates its bounds. |
| [Text](#text) | [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md) | Returns the text primitive of the coordinate, which shows the X and Y values. |
| [Track1](#track1) | [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md) | Returns the horizontal track of the coordinate's cross. |
| [Track2](#track2) | [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md) | Returns the vertical track of the coordinate's cross. |

### RotateAroundXY

Does nothing for a coordinate.

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

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

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

### SetState_XSizeYSize_1

Regenerates the text and the tracks of the coordinate from its properties and recalculates its bounds.

```csharp
bool SetState_XSizeYSize_1();
```

**Returns:** `bool`

The children are regenerated only when the location or the layer has changed since the last regeneration, or when the TrueType text must be rebuilt.

### Text

Returns the text primitive of the coordinate, which shows the X and Y values.

```csharp
IPCB_Primitive Text();
```

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

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

Its value, position and font are overwritten when the children are regenerated.

### Track1

Returns the horizontal track of the coordinate's cross.

```csharp
IPCB_Primitive Track1();
```

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

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

### Track2

Returns the vertical track of the coordinate's cross.

```csharp
IPCB_Primitive Track2();
```

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

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

## 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_Primitive.Coordinate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#coordinate)
