BIM Workflow
Build an NPM SDK BIM review workspace with a model rail, grouped toolbar controls, quick visual controls, and selected-part inspection.
This workflow matches the BIM collaboration demo layout: operators choose a model from the host application, work in a central Canvas area, use a compact grouped toolbar, and read selected-part details in a side panel. The host uses NPM SDK calls and events; it does not expose the demo’s PostMessage contract.
Use a stable application shell rather than placing every control over the model. Keep the central Canvas workspace unobstructed for inspection and selection.
- Left rail: project navigation, available model files, active-model indication, and an explicit Open action.
- Top toolbar: a general action zone, a centered Tools zone, and a Navigation zone aligned to the opposite edge.
- Tools zone: part selection, markup selection, hide-parts, explode, cross section, and transparency.
- Navigation zone: walkthrough and reset.
- Quick-control popovers: labelled explode, transparency, and cross-section controls; cross section also exposes the active X, Y, or Z axis.
- Side inspector: model readiness, current mode, and selected-part details without covering Canvas.
Gate the entire BIM toolbar on the active 3D model, then update the UI from documented NPM results and selection events.
- 1Render the selected model as opening after the user chooses it from the file rail.
- 2Mount the viewer, wait for
viewer.ready(), and open the selected model. - 3Enable BIM toolbar controls only after the host has confirmed that the active document is 3D.
- 4Subscribe to
partSelectedandselectionClearedbefore enabling part selection. - 5Open a quick-control popover only for its related visual control and keep its prior confirmed value during a pending command.
- 6Populate the inspector from
partSelected; clear it only fromselectionCleared. - 7On route exit, unsubscribe listeners and destroy the viewer.
A toolbar click requests a 3D change; it does not prove that the change was applied. Keep requested, pending, and confirmed state distinct in the host UI.
- Disable all BIM controls while no model is active, while the model is opening, and while the active document is not 3D.
- Use explicit enabled values for mode buttons and preserve the last confirmed mode if a command fails.
- Keep a quick-control popover associated with its trigger through
aria-expandedand an accessible dialog label. - Show the control value, its scope, and selected axis in text, not only through visual position.
- Do not invent selected-part fields; render only data supplied by the NPM
partSelectedevent. - Do not clear part details after reset unless
selectionClearedarrives.
React BIM Setup
Application-shell implementation with a file rail, grouped toolbar, quick controls, and inspector.
Verification
Checks for model readiness, tool results, selection events, and responsive workspace behavior.
3D Tools API
Reference for NPM 3D tool methods and result handling.
Use these pages to implement and verify the NPM BIM workspace.
