Project Setup — Readiness
One scan answers "is this model set up to firm standard?". The dashboard aggregates the six read-only audits PSU already runs — links, link paths, project metadata, levels, view templates, shared parameters, standards — into a single readiness view. Click any domain to jump straight to its page.
LINKED MODELS
12
8 Revit · 3 CAD · 1 Navis
COMPLIANCE ISSUES
15
across all configured domains
DOMAINS COMPLIANT
4 / 6
1 not yet configured
SETUP READINESS
67%
scanned just now · preview only
◔ SETUP READINESS
Compliant 4
Needs attention 1
Blocked 1
Not configured 1
Runs every audit once (read-only) and fills this dashboard + each page's grid. Nothing is written — each domain still applies from its own page with preview-before-commit.
▤ COMPLIANCE BY DOMAIN (click a row to open that page)
Bar length auto-scales to the largest issue count (icz.dashboard.bars). "—" = domain has no standard file configured yet (Standards Sync needs a standards JSON; set it on that page's gear). Bars are the read side of the same engines the pages apply.
▦ SETUP ENGINES (Dash_* → _select_page — every page reachable in one click)
7🔗Link Worksets
✓ⓘProject Info
✓▤Levels
14▦View Templates
1🖇Link Paths
✓▧Shared Params
—⚖Standards Sync
▥BEP Import
The badge on each tile mirrors the domain's live issue count from the last scan — so the dashboard now tells you where to go instead of just listing what exists. Same Dash_* handlers, no new navigation code.
Link Worksets — Compliance Engine
Auto-assign Revit / CAD / Navis link instances to their standard worksets by pattern rule. UNCHANGED this round — reachable from the dashboard; its scan now also feeds the readiness donut.
3 CAD imports (should be linked)
4 links unpinned
12 links routed
Real seams: link_logic.assign_link_worksets_routed (Lnk_Run, inside Transaction), detect_cad_imports, pin_all_links. NEW read-only helper for the dashboard: count_unpinned(doc) (the read side of pin_all_links — iterates
_collect + Element.Pinned, verified 2023–2026). No page-layout change.Level Consolidator
Bulk-rehost elements across levels with offset compensation; optionally delete a redundant source level (views rehosted first). UNCHANGED this round.
This page and its engine (level_logic.py:
list_levels · change_levels · delete_level · _rehost_views) are untouched. The dashboard reads list_levels(doc) for its Levels count only. Preview-before-commit, source-level filter, and the view-rehost guard all stay as-is.Follow-up noted (not this round): PSU mutates workshared models (workset moves, level rehosts) without
WorksharingUtils.CheckoutElements first — the B9 "checkout seam" from the mining report (verified 2023–2026). Worth folding into the shared mutation seam, but it's a behaviour change gated on the suite's ≥2-model diff-harness rule, so it stays a follow-up, not a mockup item.Project Info — Federated JSON Sync
UNCHANGED.
proj_info_logic.py —
collect_params / compare_to_master / sync_to_master. Dashboard reads the IFD/master mismatch count from compare_to_master (0 issues when the model matches the master JSON, or when no master_sync_path is set the domain shows "not configured").View Template Sweep
UNCHANGED.
viewtpl_logic.py —
scan(doc, rules) returns views whose template differs from the rule-matched target; that count (14) drives the dashboard bar + nav badge. Apply Selected via the shared icz.review_grid.Link Paths & Coordinates
UNCHANGED.
link_logic.audit_link_paths flags broken/cloud link paths (1 broken → the fail bar); repair_link_path (outside a Transaction) + acquire_coordinates_from (inside one) apply. Dashboard reads the broken count.
Shared Parameters — Audit + Bind + Drift
UNCHANGED.
sparam_logic.py —
scan_shared_parameters (bound params) + missing_standard_params (drift vs icz.paramreg). The drift count (0 here) drives the dashboard.Standards Sync — Units + Object Styles
UNCHANGED.
standards_logic.py —
audit_units + audit_object_styles vs a firm standards JSON. No standards_file set → the dashboard shows this domain as "not configured" (grey), not a false pass. Configure the file on this page's gear to activate it.BEP Rule Import
UNCHANGED.
bepimport_logic.py — extract a .docx table → map columns → write
link_routing_rules. Not an audited domain (it's an importer), so it has no dashboard bar — only a quick-launch tile.