Appearance
Entity Types
PlanCAD supports 17 entity types. Every entity belongs to a layer and carries a style (stroke color, stroke width, line type, and optional fill color). All entities support move, copy, rotate, scale, mirror, and delete operations unless noted otherwise.
line
A straight segment between two points.
| Property | Type | Description |
|---|---|---|
| start | Point | Start point |
| end | Point | End point |
Created by: LINE command / L shortcut Supports: Move, copy, rotate, scale, mirror, trim, extend, break, stretch, join, offset (produces a parallel line), explode (no-op — already atomic), array, grip editing of endpoints
rectangle
An axis-aligned or rotated rectangular shape defined by an origin corner, width, height, and rotation angle.
| Property | Type | Description |
|---|---|---|
| origin | Point | Top-left corner (before rotation) |
| width | number | Width in drawing units |
| height | number | Height in drawing units |
| rotation | number | Rotation angle in radians |
Created by: RECTANGLE / RECT command / R shortcut Supports: Move, copy, rotate, scale, mirror, explode (produces 4 lines), array, grip editing of corners
circle
A circle defined by a center point and radius.
| Property | Type | Description |
|---|---|---|
| center | Point | Center point |
| radius | number | Radius in drawing units |
Created by: CIRCLE command / C shortcut Supports: Move, copy, rotate, scale, mirror, trim, break, array, grip editing of center and radius
arc
A circular arc defined by a center, radius, and start/end angles.
| Property | Type | Description |
|---|---|---|
| center | Point | Center point |
| radius | number | Radius in drawing units |
| startAngle | number | Start angle in radians |
| endAngle | number | End angle in radians |
Created by: ARC command / A shortcut Supports: Move, copy, rotate, scale, mirror, trim, extend, break, array, grip editing
ellipse
An ellipse defined by a center, two radii, and a rotation angle.
| Property | Type | Description |
|---|---|---|
| center | Point | Center point |
| radiusX | number | Horizontal radius |
| radiusY | number | Vertical radius |
| rotation | number | Rotation angle in radians |
Created by: ELLIPSE / EL command / E shortcut Supports: Move, copy, rotate, scale, mirror, array
polyline
An ordered sequence of points forming an open or closed polygon.
| Property | Type | Description |
|---|---|---|
| points | Point[] | Ordered list of vertices |
| closed | boolean | Whether the last point connects back to the first |
Created by: POLYLINE / PL command / P shortcut Supports: Move, copy, rotate, scale, mirror, trim, extend, break, stretch, offset, join, explode (produces individual lines), array, grip editing of individual vertices
dimension
A measurement annotation. Supports linear, aligned, angular, radial, diameter, and ordinate dimension types. Dimensions can be associative — linked to an entity's endpoints so they update automatically when the entity moves.
| Property | Type | Description |
|---|---|---|
| dimType | DimensionType | linear, aligned, angular, radial, diameter, or ordinate |
| start | Point | First measured point |
| end | Point | Second measured point |
| offset | number | Distance of the dimension line from the measured segment |
| center | Point (optional) | Vertex for angular dimensions |
| radius | number (optional) | For radial/diameter dimensions |
| axis | 'x' or 'y' (optional) | For ordinate dimensions |
| attachedEntityId | string (optional) | ID of the entity this dimension tracks |
| attachedEndpoints | [number, number] (optional) | Which endpoints of the attached entity map to dim start/end |
Created by: DIMENSION / DIM command / D shortcut Supports: Move, copy, rotate, scale, mirror, array
text
A single-line text label placed at a point with a given height and rotation.
| Property | Type | Description |
|---|---|---|
| position | Point | Insertion point (baseline left) |
| text | string | Text content |
| height | number | Font size in drawing units |
| rotation | number | Rotation angle in radians |
Created by: TEXT command / T shortcut Supports: Move, copy, rotate, scale, mirror, array, inline editing by double-clicking
annotation
A leader annotation: an arrow line from a start point to an end point, with a text label at the end.
| Property | Type | Description |
|---|---|---|
| leaderStart | Point | Arrow tip (origin of the leader line) |
| leaderEnd | Point | Text anchor point |
| text | string | Annotation text |
| height | number | Font size in drawing units |
Created by: ANNOTATION command / N shortcut Supports: Move, copy, rotate, scale, mirror, array, grip editing of leader endpoints
image
A raster image placed at a position with explicit width and height.
| Property | Type | Description |
|---|---|---|
| position | Point | Top-left corner of the image |
| width | number | Display width in drawing units |
| height | number | Display height in drawing units |
| dataUrl | string | Base64-encoded image data (PNG/JPEG) |
Created by: IMAGE command / I shortcut Supports: Move, copy, rotate, scale, mirror, array
spline
A NURBS spline curve defined by control points, a degree, and a knot vector. Optionally stores fit points for DXF round-trip compatibility.
| Property | Type | Description |
|---|---|---|
| controlPoints | Point[] | Control polygon vertices |
| degree | number | Curve degree (typically 3 for cubic) |
| knots | number[] | Knot vector |
| closed | boolean | Whether the spline is closed |
| fitPoints | Point[] (optional) | Original fit points (DXF import) |
Created by: SPLINE command / K shortcut Supports: Move, copy, rotate, scale, mirror, array, grip editing of control points
block-insert
An instance of a block definition placed at a position with scale and rotation.
| Property | Type | Description |
|---|---|---|
| blockId | string | Reference to a BlockDefinition |
| position | Point | Insertion point |
| scale | { x, y } | Non-uniform scale factors |
| rotation | number | Rotation angle in radians |
Created by: Inserting a symbol from the symbol library, or pasting a block Supports: Move, copy, rotate, scale, mirror, explode (expands block contents into individual entities), array
hatch
A filled region defined by one or more boundary loops. The first boundary is the outer loop; additional boundaries represent holes.
| Property | Type | Description |
|---|---|---|
| boundaries | Point[][] | Array of boundary loops (outer first, then holes) |
| patternType | HatchPatternType | solid, lines, cross, diagonal, horizontal, or vertical |
| patternAngle | number | Pattern rotation in degrees |
| patternScale | number | Pattern spacing multiplier |
| fillColor | string | Fill color (CSS color string) |
Created by: HATCH command / Shift+H shortcut (click inside a closed boundary) Supports: Move, copy, rotate, scale, mirror, array
xline
A construction line (infinite line) passing through a point in a given direction. XLines are excluded from zoom-to-fit calculations.
| Property | Type | Description |
|---|---|---|
| point | Point | A point on the line |
| direction | Point | Direction vector (not necessarily normalized) |
Created by: XLINE / XL command Supports: Move, copy, rotate, mirror, array
wipeout
A filled polygon that masks (blanks out) everything behind it in the draw order. Useful for obscuring entities beneath annotation or title block areas.
| Property | Type | Description |
|---|---|---|
| points | Point[] | Boundary vertices of the wipeout polygon |
Created by: WIPEOUT command Supports: Move, copy, rotate, scale, mirror, array, grip editing of vertices
mtext
A multiline text block with a defined bounding width and optional font styling.
| Property | Type | Description |
|---|---|---|
| position | Point | Top-left insertion point |
| text | string | Text content (may contain line breaks) |
| height | number | Font size in drawing units |
| width | number | Bounding box width |
| rotation | number | Rotation angle in radians |
| fontFamily | string (optional) | Font family name |
| bold | boolean (optional) | Bold style |
| italic | boolean (optional) | Italic style |
| underline | boolean (optional) | Underline style |
Created by: MTEXT / MT command Supports: Move, copy, rotate, scale, mirror, array, inline editing by double-clicking
table
A grid of cells with configurable column widths, row heights, and an optional header row.
| Property | Type | Description |
|---|---|---|
| position | Point | Top-left corner of the table |
| rows | number | Number of rows |
| cols | number | Number of columns |
| colWidths | number[] | Width of each column in drawing units |
| rowHeights | number[] | Height of each row in drawing units |
| cells | TableCell[][] | Two-dimensional array of cell data |
| headerRow | boolean | Whether the first row is styled as a header |
| fontSize | number | Font size for cell text in drawing units |
Created by: TABLE / TB command Supports: Move, copy, rotate, scale, mirror, array, inline cell editing by double-clicking
Common Properties (all entity types)
Every entity shares the following base properties regardless of type.
| Property | Type | Description |
|---|---|---|
| id | string | Unique identifier (UUID) |
| type | EntityType | Entity type string |
| layer | string | Layer name |
| style | Style | Stroke color, stroke width, optional fill, line type, dash pattern |
| selected | boolean | Whether the entity is currently selected |
| visible | boolean | Whether the entity is rendered |
| group | string (optional) | Group ID — entities sharing a group ID are selected together |
| standNumber | string (optional) | Stand/booth identifier displayed as a cartouche label at the entity center |
| labelOffset | Point (optional) | Offset for repositioning the stand number label relative to the entity center |
| autocadId | string (optional) | PlanExpo shape ID linking this entity to its PlanExpo counterpart |
| peShapeType | string (optional) | PlanExpo shape type (Spot, ConstraintZone, AuthorizedZone) |
| peServices | PlanExpoServiceMeta[] (optional) | Exhibitor services imported from PlanExpo (label + quantity per service) |
Block Attributes
Block definitions can carry dynamic attributes that modify block instances at runtime. Two attribute types are available:
LayerCountTextAttribute
Replaces a text entity within the block with a count of entities on a target layer.
| Field | Description |
|---|---|
| kind | layer-count-text |
| layerName | The layer to count entities on |
| entityType | Optional filter — only count entities of this type |
| blockName | Optional filter — only count block inserts of this name |
LayerCountArrayAttribute
Repeats the block insertion based on entity count on a target layer, arranged in a configurable pattern.
| Field | Description |
|---|---|
| kind | layer-count-array |
| layerName | The layer to count entities on |
| entityType | Optional filter — only count entities of this type |
| blockName | Optional filter — only count block inserts of this name |
| layout | Arrangement pattern: direction, spacing, columns |