Constraint creation
Author geometric and dimensional constraints on the ACS canvas by selecting vertices and edges, then choosing an action from the floating bar.
Overview
The ACS parametric sketcher lets you author geometric constraints directly on the canvas by selecting vertices and edges and then picking an action from a floating bar. This page covers the authoring workflow — how to select geometry and create constraints. For managing existing constraints (editing values, removing, resolving conflicts), see Parametric sketcher.
Select tool
Constraint creation requires the Select tool — the arrow cursor, first in the floating tool palette along the bottom of the ACS canvas. Click the arrow icon, press V, or press Escape to enter Select mode. Select is pinned to the palette and never moves into the overflow menu regardless of canvas width, so it is always reachable from its position at the start of the row.
Everything on this page applies in Select mode only. While a placement or drawing tool is active, canvas clicks perform that tool’s action instead — and with a sketch tool such as Draw Polygon, the outline’s edges, vertex handles, dimensions and padlocks all stop responding to clicks, so a click places a vertex rather than changing the selection.
Selecting geometry
One-step selection
Clicking a vertex, edge, or arc centre immediately selects it — there is no prior hover or focus step. The selection is visible at once; vertex and centre handles (the small dots on the outline and crosses at arc centres) appear as soon as the outline is hovered or any item is selected.
Plain click — single selection
A plain click (no modifier key) selects one item:
- Click a vertex (dot handle on the outline or on a freeform void ring) — selects that vertex.
- Click an edge (the line or arc segment between two vertices, on the outline or a freeform void) — selects that edge.
- Click an arc centre (the cross handle at an arc edge’s centre, off the ring itself) — selects the centre. It is a real point in the sketch — not on the ring — so every dimension and action below that accepts a vertex accepts a selected centre too.
A plain click also resets any previous single-selection, replacing it with the newly clicked item.
Shift-click — additive multi-selection
Hold Shift while clicking to extend the selection without replacing it:
- Shift-click a vertex — adds it to the accumulated selection.
- Shift-click an edge — adds the edge.
- Shift-click an arc centre — adds it, treated the same as a vertex.
Constraint actions appear in the floating bar only when the accumulated selection forms a valid combination (see Selection-to-action table below). Items accumulate until you click the canvas background to clear or click a constraint button to apply.
Clearing the selection
Click anywhere on the canvas background (not on an outline vertex or edge) to clear both single and multi-selection.
Constraint action bar
When a valid selection is assembled — a single edge or vertex, or a multi-selection — the constraint action bar appears at the top-centre of the canvas. It shows one button per available constraint type for the current selection.
Click a button to apply the constraint. The bar closes, the constraint is saved immediately, and the sketch status chip updates.
Constraints created while drawing
The action bar is not the only route. While you draw with Draw Polygon — an outline, or a void into a section that already has one — horizontal, vertical, parallel and perpendicular constraints are inferred from the segment under the cursor and created when the ring closes, on the same undo step as the ring. They are ordinary constraints once created: listed, editable, and deletable here.
Drawing a void, the surviving rings are in scope as match targets, so a duct face inferred parallel to the section face beside it is a real cross-ring constraint. See How a vertex position is decided and Constraints inferred while drawing.
Properties panel
The constraint multi-select you are building on the canvas operates independently of the properties panel. Assembling a multi-selection or hovering over the action bar does not scroll or highlight the properties panel.
Once you click an action bar button and the constraint is created, it immediately appears in the Constraint List Panel — the Constraints section of the left panel’s General tab, collapsed by default. Open that section after creating a constraint to see its state badge, switch a dimension between driving and driven, or delete it. Its value is not edited there — a dimension’s value is typed into the dimension itself, on the canvas or in the geometry table. See Parametric sketcher for full panel details.
Selection-to-action table
| Selection | Available constraints |
|---|---|
| Any number of straight edges | Horizontal, Vertical† |
| One vertex | Fix |
| Two straight edges | Parallel, Perpendicular, Equal length, Offset*, and Horizontal, Vertical |
| One straight edge + one arc | Tangent, Clear distance |
| Two arc edges | Tangent, Equal radius, Clear distance |
| Two vertices — same ring or different rings (a vertex, or an arc centre, counts as a vertex here) | Distance, and Coincident when the two are on different rings |
| Three or more vertices | Collinear — pulls every selected vertex onto one straight line |
| Two vertices + one straight axis edge (neither vertex is an endpoint of the axis) | Symmetric |
| One vertex + one non-incident straight edge | Midpoint |
An arc edge anywhere in the selection hides Horizontal and Vertical — they apply only to straight edges, because there is no axis to align an arc to. A single arc on its own therefore offers no action at all.
:::note † Horizontal and Vertical take a whole selection. Shift-click as many straight faces as you like and one click levels all of them, creating one separate constraint per face — individually badged, individually deletable, identical to having applied them one at a time. A two-edge selection offers them alongside Parallel / Perpendicular / Equal length rather than instead of them, so two near-level faces can be made level without first making them parallel.
The result does not depend on the order you selected the faces in: all of the constraints are solved together, in one step, from the geometry as it stood before you clicked. Two faces 4 mm out of level each move about 2 mm, rather than one face absorbing the whole error because it happened to be clicked second.
A selection that cannot be levelled without flattening the section is refused whole, with nothing applied — select every face of a closed ring and ask for Horizontal and you get a refusal, not a section collapsed to a line. :::
:::note ** Offset only appears while a parallel relation is already live between the two selected edges — an explicit Parallel constraint between them, or both independently pinned Horizontal, or both pinned Vertical. This is a constraint test, not a check of the edges’ current angle: two edges that merely look parallel on the canvas do not offer Offset until a parallel relation actually holds them there. :::
:::note Applying Parallel to two edges offers a shortcut. A toast appears — “Faces are now parallel. Set the offset?” — with a Set offset button. Clicking it creates the Offset dimension immediately, at the current measured gap (the same default the Offset button in the action bar would use), and opens its value box. This is a separate, second click creating a separate, second constraint record — Parallel and Offset are never combined into one action, so nothing is added that you did not ask for. :::
:::note Creating an Offset asks for its value. However you create one — the Offset button in the action bar, the Set offset follow-on above, or Clear distance on an arc pair — the value box opens straight away, pre-filled with the gap as measured. Nobody adds an offset in order to record the distance that is already there; the reason to reach for one is that the faces are 143.6 mm apart and should be 150. Type the number and press Enter.
Dismissing the box changes nothing. The constraint is created at the measurement first and the box is opened on it, so cancelling leaves the dimension reading exactly what it read before and moves no geometry. :::
:::note Distance dimensions the straight-line span between any two selected points — two vertices on the same ring (a diagonal), vertices on different rings, or an arc centre paired with either. It is offered for every two-point selection; Coincident additionally appears alongside it, but only for vertices on two different rings (same-ring vertices are already distinct points on one continuous outline, so merging them is not offered there). On sections with a freeform (polygon) void — a box girder, for example — the outline and each void are sibling rings, so selecting one vertex on each offers both Coincident and Distance, exactly as in GCS. :::
:::note Arc centres are selectable, and count as a vertex everywhere in this table. Every arc edge — on the outline or a freeform void — carries a cross-shaped centre handle, off the ring itself, alongside its two ring-vertex dot handles. Selecting a centre and a vertex (or another centre) makes Distance available, letting you dimension a duct or curved feature from its true centre rather than a point on its boundary. A circular void (a full circle, drawn as two semicircle arcs) has two centre handles, one per arc — they coincide automatically as the sketch solves, so dimensioning either one moves the whole circle. :::
:::note Freeform void rings are constrainable; parametric hollows are not. The vertices and edges of a freeform polygon void carry the same selection handles as the outline and participate in every constraint above. The circular void of a parametric hollow section (a hollow circle authored from its outer/inner diameters) is the one exception: its geometry is rebuilt from the diameter drivers whenever a diameter is edited, so a constraint there would be silently overwritten — those void rings offer no selection handles and can never be constrained. :::
System-generated constraints
Some constraints are created automatically by ACS when you perform an action in another panel — they never require a canvas selection. These constraints appear in the Constraint List Panel alongside user-authored ones, but they are not accessible through the selection-to-action workflow above.
Tie-corner constraints
When you place a cell tie from the Reinforcement panel, ACS automatically creates a set of tie-corner constraints that align each corner of the tie path with the nearest longitudinal bar position in that cell. This means the tie hugs the bar group as you move bars — the tie corners track the bars, not the other way around.
Tie-corner constraints:
- Appear in the Constraint List Panel labelled as “Tie corner” with the associated cell and corner index.
- Cannot be created by selecting vertices or edges on the canvas — the selection-to-action table above applies only to user-authored constraints.
- Are removed automatically when the cell tie they belong to is deleted.
- Can be individually removed from the Constraint List Panel if you want a corner to float freely; removing one turns that corner from a tracked position into an ordinary free vertex.
Constraint health indicator
The outline stroke reflects the sketch’s constraint health and updates live as constraints are added or removed:
| Outline colour | Meaning |
|---|---|
| Default outline stroke | Under-constrained — geometry has free degrees of freedom; the status chip reads n degrees of freedom. The same default stroke shows while the chip reads Geometry error, since a degenerate sketch has no constraint state to colour. |
| Green | Fully constrained — every degree of freedom is determined; the chip reads Fully constrained |
| Red | Conflicting constraints — at least one constraint conflicts with another; the chip reads Conflicting constraints |
The stroke is never the only signal: each affected constraint also carries a state mark on its canvas badge and in the Constraint List Panel, and the chip carries an icon per state.
Typical workflow
- Select the Select tool (arrow) in the tool palette.
- Click the first vertex or edge to select it.
- Shift-click the second (and optionally third) item.
- The constraint action bar appears. Click the desired constraint button.
- The constraint is saved. The outline stroke and status chip update immediately.
Tips
- You don’t always need a multi-selection: a single straight edge offers Horizontal / Vertical, and a single vertex offers Fix — select just the one item and the action bar appears. Equally, you are not limited to one: Shift-click every face you want level and apply Horizontal once.
- To select an edge, click near its midpoint — clicking close to a vertex usually picks the vertex instead.
- After applying a constraint the selection is cleared. Shift-clicking accumulates a fresh set for the next constraint.
- The status chip in the tool topbar is the fastest way to confirm the sketch is fully constrained before running an analysis.
- If the outline turns red after adding a constraint, a conflict dialog opens — see Parametric sketcher to resolve it.
Keyboard shortcuts
| Key | Action |
|---|---|
| Shift + click | Extend multi-selection |
| ESC | Returns to Select tool and clears single-selection focus (selected bar, edge, vertex); does not clear the constraint multi-select — click the canvas background to clear it |
Locking a dimension, angle or radius has no keyboard shortcut — every lock is a padlock beside its dimension — and neither has deleting a constraint, which is the Delete constraint button on its row in the Constraint List Panel. The canvas’s drawing shortcuts (V, P, A, Ctrl+Z, …) are listed under Parametric sketcher.
Worked example: dimensioning a void to the outline
This walks through the cross-ring case Offset and Clear distance both exist for — holding a void a fixed distance off the section it sits in — end to end, including what the two negative-value and driven-value conventions actually look like once you hit them.
- Draw or place a void inside the outline — a freeform polygon void, or a Box Girder template’s cell. Select one of its straight edges.
- Shift-click the outline edge you want to measure against. If the two edges are not already parallel — no explicit Parallel constraint between them, and not both independently pinned Horizontal or both Vertical — the action bar offers Parallel but not Offset yet. Click Parallel.
- A toast appears: “Faces are now parallel. Set the offset?” Click Set offset. This is the second, separate action — Offset is now a real constraint record of its own, defaulted to the gap as drawn, and it renders on the canvas with witness ticks at both faces because the parallel relation it depends on is live.
- The value box opens on the new dimension straight away, pre-filled with the gap as drawn — type the value you actually want and press Enter, or dismiss it to keep the measured one. (You can reopen it later by clicking the dimension, exactly as you would any other.) The box always takes a positive clear distance — the side is fixed by the geometry at the moment you created the constraint, not by whatever you type.
- Delete the Parallel constraint (Constraint List Panel, or the canvas badge) and leave the Offset one in place. The dimension does not disappear and does not change value — but the witness ticks at the two faces do, because the annotation is no longer entitled to claim a face-to-face measurement. It re-labels itself to what it now actually measures: the one vertex, to the one line. Re-add a parallel relation between the same two edges later and the ticks come back — the annotation always reflects the live relation, never the history of how the dimension was created.
- If some other edit elsewhere in the sketch pulls the measured vertex through to the far side of the reference line — a duct dragged past the face it was held off — a driven copy of this dimension would read the true signed distance with an explicit “past datum” suffix rather than a bare minus sign, so it can never be mistaken for a typo; a driving edit that would force the same crossing is refused instead.
The same shape of workflow dimensions a duct inside a curved void or outline with Clear distance (arc-arc-distance) instead of Offset — select the two arc edges and choose Clear distance directly, with no Parallel step first: an arc’s own centre and radius already supply what “clear” means, which is why Clear distance is unconditional where Offset is gated. The same value convention applies — positive clear distance, “past datum” on a negative driven reading, refused rather than silently flipped on a driving edit.
Next steps
- Parametric sketcher — persisted locks, vertex dragging with constraint enforcement, and the Constraint List Panel.
- Section geometry — drawing the outline before applying constraints.
- Canvas navigation — pan, zoom, and fit controls.