docs / workbenches / PMI Workbench

PMI Workbench

Id: pmi · Sixth entry in the workbench dropdown

PMI (Product and Manufacturing Information) annotates a finished model without touching its feature history: dimensions with tolerances, notes and leaders, hole callouts, datums and feature control frames (GD&T), plus exploded views — organised in PMI views, each a saved camera and display state with the annotations it owns. The annotations are real PMI: the STEP exporter writes them as AP242 semantic PMI with saved views, and the importer reads AP242 PMI back into live annotations. Views are the unit a drawing sheet places — sheets are the Drawing workbench's, where a saved view goes on paper and is drawn with hidden lines removed and its annotations beside it.

What it offers

PMI creates no features. It adds:

The workbench is the editing mode

Switching to PMI enters PMI editing: the modeling camera, hidden objects and wireframe setting are remembered. Exactly one view can be active at a time; activating a view applies its camera (refit to the current viewport), its hidden objects (its Hide body steps — what was hidden when it was captured is its first, baseline step), its wireframe setting and its explode offsets, and draws its annotations. Deactivating a view — switching to another, unticking it, or leaving the workbench — restores the remembered modeling state.

While a view is active, hiding or showing a body anywhere — the Scene tree's eye, the context bar's Hide, a BOM row's visibility box — and the toolbar's wireframe toggle are edits of that view (each one undo step): a hide adds a Hide body step, a show takes the body out of the view's steps (a hidden component keeps its other bodies hidden), so leaving and re-entering the view, its drawing sheets and its 3D PDF all show the same thing. To un-hide from the PMI pane, delete or suppress the step. A committed sketch's visibility is the sketch's own (the Scene tree's sketch checkbox), never a view's.

Orbiting while a view is active never rewrites its camera silently; Update camera in the view's row menu re-captures it. Annotation creation is gated on an active view: with none, the panel's summary line reads no active view and the context bar offers nothing. Everything is persisted live in the part file — there is no Finish or Cancel.

Annotation types

TypeIdAnchors toValue
Linear dimensionDIMtwo of vertices / edges / faces / planes, or one straight edgethe distance (optionally its X / Y / Z component)
Radial dimensionRADa cylindrical or spherical face or a circular edgeradius or diameter
Angle dimensionANGtwo planar faces / planes / straight edgesacute, obtuse or reflex
LeaderLEADone or more vertices / edges / facesfree text
NoteNOTEa world point (the label)free text
Hole calloutHOLEa hole wall or its circular edged depth / THRU ALL, countersink , counterbore , optional N×
DatumDTMa face or edgethe datum letter (A–Z skipping I, O, Q; unique per part)
Feature control frameFCFa face or edgecharacteristic, tolerance ( zone, /), up to three datum references
Explode bodyEXPsolids / componentsa display-only pose delta while the view is active
Hide bodyHIDsolids / componentsa display-only hide step: the targets stay out of the view while it is active (nothing is drawn for it)
Find-number balloonBALa component or its geometrythe occurrence's BOM Find Number, read live; the arrow head lands on the nearest point of the part's surface in screen space, or on an optional picked vertex / edge anchor

Every drawn type has an annotation plane (the Annotation plane field, optional): pick a planar face or a reference plane and the annotation lies in that plane — its label projects onto it, dragging the label keeps it there, the dimension / extension lines and the datum / FCF frames are drawn in it, and the STEP file places its ANNOTATION_PLANE on it. Leave the field empty and the annotation aligns to the view camera instead (the natural choice for leaders and notes). A picked plane must be parallel to what it carries — a linear dimension's direction, an angle's plane, a circle's plane — or the annotation reports an error rather than drawing a foreshortened line. A drawing sheet draws EVERY annotation of the view it places, each one projected through that view's camera; whether its text is laid flat on the paper or drawn as it lies in the plane is the placement's Flatten text to sheet checkbox, which is on by default.

The three dimension types carry a tolerance block — none, symmetric (±), deviation (+upper/−lower) or limits (upper / lower values) — a decimals count and a reference flag (parentheses, no tolerance). Every value is a kernel measurement of the exact B-rep (carrier lines, plane spacing, face metadata radii), never a tessellation read; a rebuilt model re-resolves every annotation, and an anchor that no longer exists puts that one annotation into an error status without aborting the view.

Feature control frames offer all fourteen ASME Y14.5-2009 characteristics (AP242 defines an entity for each; concentricity and symmetry stay available even though Y14.5-2018 retired them). A form tolerance takes no datum reference; orientation, runout, concentricity and symmetry need at least one; position and the two profiles may take up to three or none. Every referenced datum must be defined in the part.

Typical workflow

  1. Set up the viewpoint and hide what should not show, then press Capture view (or the panel's Capture view). The new view is active.
  2. Select geometry in the viewport — two faces, an edge, a cylinder wall — and pick the annotation from the context bar or the Annotations buttons on the actions strip, or use the panel's + Add annotation, and fill the remaining reference fields through the picker.
  3. Drag the label chip in the viewport to place it; double-click it to open the annotation's dialog (tolerance, decimals, style …), or right-click it for its menu — Edit, Move up / down, Delete. Delete removes the selected annotation. Pick the Annotation plane there — a planar face for a dimension that should lie on that face, empty to face the camera. Hover a chip or a panel row to see what it references. While a reference pick runs, a chip does not take the click: it goes to the part under the chip, as if the chip were not there.
  4. Capture more views for other viewpoints. Rename a view in its row; switch views by ticking them.
  5. Export STEP: the file carries the geometry AND the PMI (see below).

To put the views on paper, switch to the Drawing workbench.

Where the data lives

The part file's pmi block: { views: [{ id, name, camera, display: { textSizePt, wireframe, section }, annotations: [{ type, enabled, inputParams, labelWorld }] }], idCounter }. What a view hides is only its hide annotations; a file saved before 2026-11-05 with a display.hidden list opens with that list as the view's baseline step. References are kernel entity names (component geometry included); a vertex is {solid}@x,y,z in world coordinates. Which view is active and which annotation's form is open are session state, never saved. Documents without PMI carry no block.

STEP

Export writes an AP242 file: every annotation becomes semantic PMI (DIMENSIONAL_LOCATION / DIMENSIONAL_SIZE / ANGULAR_LOCATION with nominal values and ± or limit tolerances, DATUM + DATUM_FEATURE, the geometric tolerance entities with datum systems, material modifiers and zones) attached to the faces / edges / vertices through shape aspects, plus the standard graphic presentation — lines, arrowheads, frames and the text itself as polylines (the viewport's chips and the file's strokes come from one layout) — on ANNOTATION_PLANEs (the view's, and one per picked plane) and one DRAUGHTING_MODEL + CAMERA_MODEL_D3 saved view per PMI view. Import reads the same back: dimensions, tolerances, datums, frames and saved views arrive as live annotations on the imported body, an annotation plane that coincides with a planar face becomes that face's plane, and plain 3D text becomes notes. A STEP file imported as an assembly keeps its PMI too: an annotation the file attaches to a part goes into that part's document (once for the part, however many instances place it), and one the file attaches to a single instance goes into the assembly document naming that component's geometry, so the panel lists it here. See File formats.

Toolbar buttons

ButtonIdOfferedWhat it does
Capture viewpmi.capture_viewalwayssnapshot the camera and visibility into a new active PMI view