Skip to content

4D & 5D

Model checking (IDS), the programme (4D) and the money (5D): run an information-delivery ruleset, import a P6 or MS Project schedule, give it logic, link activities to model elements, play the build in the viewer, read earned value and Monte-Carlo risk, take off quantities from the model, price them from a versioned rate library, and book actual costs.

Related: Models & viewer · Field › Progress · Roles › Commercial / Cost · Glossary


IDS conformance checks

What it does

Runs a buildingSMART IDS ruleset (.ids / .xml) against the project's current models and reports, per specification rule, how many applicable elements pass and fail, with the failing elements listed by GUID. Failures can be shown red in the 3D viewer or raised as issues.

Who uses it and why

BIM/coordination leads and information managers checking a delivery against an employer's information requirements (naming, classification, property sets, materials) before it is accepted.

Prerequisites

  • At least one model in ready state (Models).
  • An IDS file (from the client's EIR, or authored in any IDS editor).
  • Project role upload_engineer or admin to upload and run; anyone can read results.

Step-by-step

  1. Rail › Standards & 4DIDS tab. The page header reads "IDS conformance checking and 4D schedule import, linking and playback."
  2. Upload IDSIDS file ("buildingSMART IDS (.ids / .xml).") › Upload ruleset. The specification appears under IDS specifications as "N specs · ".
  3. Press Run on a specification. The run appears under Run history with status running; the page polls every 4 s ("This refreshes automatically when the run completes.").
  4. Select the run. The Validation report shows Applicable / Pass / Fail totals and a pass/fail bar per rule; Failing elements lists Element GUID and Failed requirements.
  5. Show in viewer opens the 3D viewer with the failing elements coloured red.
  6. Raise issues creates one issue per failing element, titled "IDS non-compliance: ", source ids, attached to that element — deduplicated per (rule, element), so re-running and pressing it again never files the same element twice. Up to 100 issues per press.

Standards & 4D — IDS

Controls

Upload IDS (IDS file · Upload ruleset) · IDS specifications (per spec: name, spec count, IFC version, Run) · Run history (status badge running / done / failed; click to select) · Validation report (Applicable · Pass · Fail; per-rule bars) · Failing elements (Show in viewer · Raise issues). The CSV of a run is available at GET /api/projects/:projectId/ids/runs/:runId/export.csv (API only — there is no button yet; capped at IDS_EXPORT_ROW_CAP, default 50,000 rows, above which it points at the paginated /failures route). Failing elements shows the first 100 failures.

What happens after

The run is executed by the worker, so it survives a page refresh; results are stored per run and per rule, and every run stays in the history. Issues raised from a run behave like any other issue (assignable, BCF-exportable, visible in the viewer's Issues panel).

Connections to other modules

  • Issues — raised failures (source ids).
  • 3D viewerShow in viewer highlight.
  • Models — a run validates the current version of every ready model (the run stores that version manifest, so an old run stays reproducible).

Data in / data out

In: an IDS 1.0 XML file; the models' properties, classifications and materials. Out: per-run pass/fail counts and failing GUIDs (UI and CSV); optional issues.

Permissions and approval

Action Role
Read specifications, runs, reports, CSV any project member
Upload a ruleset, run it, raise issues upload_engineer or admin
Delete a specification admin (API DELETE /api/projects/:projectId/ids/:specId; no button in the UI)

No approval step — a run is a report, not a decision.

Common mistakes and troubleshooting

  • "No applicable elements in the validated models." — the rule's applicability (IFC class, classification, property) matches nothing in the models; check the entity names in the IDS against the model's actual classes.
  • Run stays running — the worker is down or busy; see the Cloud activity panel and the monitoring runbook.
  • Run failed — the message under Run failed names the cause (usually an IDS the parser rejects). Validate the file in an IDS editor and re-upload.
  • Raise issues created fewer issues than failures — expected: rules that could not be checked because the model has no relation index, and spec-level (cardinality:…) rows, are counted as failures in the report but deliberately never become issues.
  • Show in viewer opens the viewer but highlights nothing — the only failures are spec-level (cardinality:…) rows, which have no element behind them.

Limitations and integration prerequisites

  • IDS 1.0 facets: entity, attribute, classification, property, material, partOf. A regular-expression pattern that is invalid or catastrophic (ReDoS) is compiled through a safe guard and degrades to never-match: in a requirement facet its elements read as fail, in an applicability facet they simply fall out of scope; the run does not crash.
  • No scheduling — runs are started by hand (or via the API from an automation of your own).
  • No compare-between-runs view; export two CSVs.

Where to go next

Issues to work the raised failures · 4D schedule on the neighbouring tab.


4D schedule

What it does

Imports a Primavera P6 .xer or MS Project .xml programme, shows the WBS task tree, computes the critical path (CPM) from the dependency network, plays construction by date in the viewer, computes earned value (SPI/CPI/SV/CV/PV/EV/AC/EAC), runs a 2,000-iteration Monte-Carlo schedule-risk simulation, and draws the planned cost curve.

Who uses it and why

Planners (import, dependencies, links, status dates), project managers (playback, EVM, risk), QS (cost curve, actual costs — see 5D cost).

Prerequisites

Role Admin or Upload Engineer to import and edit; a READY model for linking; a programme file exported from P6 (.xer) or MS Project (.xml).

Step-by-step

  1. Rail › Standards & 4DSchedule tab › Programme fileImport programme. The schedule appears in the Schedule select as " (N tasks)".

Standards & 4D — Schedule before any import

  1. Set the Status date (or Roll to today) — EVM and variance are computed against it.
  2. Dependencies: imported programmes bring their own logic; add or correct links with Predecessor, Type (FS · SS · FF · SF), Successor, Lag, + Add. "An empty network means every activity reads as critical with zero float."
  3. Link activities to the model: WBS prefix ("Matches activities whose WBS code starts with this.") + IFC type ("The element class those activities build.") › PreviewApply. Or link one task at a time in the WBS task tree; remove links from the list under the link panel.
  4. Record progress in the WBS task tree: per task the planned bar, actual %, start/end date inputs and the phase (Install · Demolish · Temporary).
  5. Play it: the scrubber on this page or the viewer's 4D timeline (rewind/play, 1d/s · 7d/s · 30d/s · 90d/s, PLANNED / ACTUAL, date, "N% through programme"). Elements not yet built by the cursor date are hidden; a Demolish task fades its elements out and removes them; Temporary works are drawn at reduced opacity while erected and struck afterwards.
  6. Read Critical-path Gantt (duration, start → finish; critical path in rust-orange, non-critical in cyan, total float dotted), Earned value · 5D cost, Schedule risk · Monte-Carlo (2,000 runs) (P50 / P80 / P90 finish, Confidence in baseline "P(finish ≤ baseline)", P80 contingency) and Risk drivers (criticality index) — the activities most often on the critical path.

Schedule — playback, Gantt, EVM

1 · Schedule select · 2 · Status date / Roll to today / Import · 3 · playback speeds and PLANNED / ACTUAL · 4 · Critical-path Gantt · 5 · Earned value · 5D cost

Schedule — risk, cost curve, dependencies

1 · Risk drivers (criticality index) · 2 · Planned cost curve (5D) with Import actual costs · 3 · Dependencies

Schedule — links and WBS tree

1 · Predecessor / Type / Successor / Lag / Add · 2 · Link activities to the model (WBS prefix → IFC type, Preview, Apply) · 3 · WBS task tree (actual %, dates, phase)

Viewer 4D timeline

1 · programme select · 2 · rewind / play / speed · 3 · PLANNED / ACTUAL

Controls

Schedule select · Status date + Roll to today · Choose file + Import · Delete programme (admins; confirms first, takes tasks, dependencies, links and costs with it) · playback (rewind, play, 1d/s 7d/s 30d/s 90d/s, PLANNED / ACTUAL, slider) · Critical-path Gantt · Earned value · 5D cost tiles (SPI · CPI · SV · CV · PV · EV · AC · EAC) · Schedule risk (P50 · P80 · P90, confidence, contingency) · Risk drivers · Planned cost curve (5D) + Import actual costs · Dependencies (Predecessor · Type · Successor · Lag · Add; remove per row) · Link activities to the model (WBS prefix · IFC type · Preview · Apply) · WBS task tree (planned bar · % · start/end · actual % · phase select). The viewer's 4D timeline button mirrors the playback.

What happens after

Import creates the schedule (audit Schedule Imported); links are recorded (Schedule Task Linked); dependencies re-solve CPM immediately; the risk simulation and EVM update on the status date; Progress recompute reads the actual % values.

Connections to other modules

Viewer (timeline hides/colours elements), Progress (observed vs planned), Takeoff & Cost (Cost control reads the programme; Push quantities to the programme), Analytics (S-curve), Automation (no schedule triggers today). The Copilot has no schedule tool today.

Data in / data out

In: .xer / .xml, dependency edits, links, actual %, actual costs. Out: nothing exported from this page; EVM figures appear in Cost control and the progress report.

Permissions and approval

Import, links, actual %: Admin, Upload Engineer. Dependencies, actual-cost import, Delete programme: Admin. Read: everyone. No approvals.

Common mistakes and troubleshooting

  • "No schedules imported" — import a .xer or .xml; CSV is not accepted.
  • Every task is critical, float 0 — no dependencies; add them.
  • Viewer timeline shows nothing — no activities are linked to elements; use Link activities to the model.
  • Auto-link matched 0 — the WBS prefix must match the activity codes your scheduling tool wrote (see the task tree), and the IFC type must exist in the model (see Groups › Categories).
  • CPI reads 1.00 — "No actual cost is recorded, so CPI, CV and EAC are conventions rather than results."
  • Confidence in baseline 1 % — the baseline finish is earlier than most simulated finishes; add float or contingency (P80).

Limitations and integration prerequisites

  • Import only; there is no export back to P6/MS Project.
  • Calendars come from the file; there is no calendar editor.
  • No live sync with Primavera/MS Project — re-import a new revision as a new schedule.

Where to go next

5D cost.


5D cost

What it does

Three things under Takeoff & Cost plus the cost side of the schedule: a Bill of quantities measured from the model (with sheet measurements added), a versioned Rate library that prices it, and Cost control — budget, earned, spent, cost performance, forecast and variance against the programme, with Import actual costs and Push quantities to the programme.

Who uses it and why

Quantity surveyors and commercial managers. The model is measured once and priced reproducibly.

Prerequisites

A READY model; a programme (for Cost control); role Admin or Upload Engineer to create libraries, publish prices and import costs.

Step-by-step

  1. Takeoff & Cost › Bill of quantities: choose Group by (IFC type · IFC type and storey · Classification · Classification and storey), Model (All current models or one), and Prices (Quantities only, not priced or a rate library version). Read the KPIs (Elements, Carrying quantities "n of n", Items, Priced total) and the table (Item · Elements · Measured · derivedArea · derivedCount · derivedLength · derivedVolume). "Every element in this selection carries a measurement." — gaps, if any, are stated. Export BOQ.
  2. Rate library: New library (name, Currency — "Use the company currency" or an ISO code) › Add a rate per classification group › Save pricesPublish ("Publishing freezes these prices. To change them afterwards, create a new version." — New version).
  3. Back in the BOQ, pick the published library under Prices to see the Priced total.
  4. Cost control: choose the Programme; read Budget · Earned · Spent · Cost performance · Forecast · Variance. Book actuals with Import actual costs on the Schedule tab ("Paste a cost export. Each line is an activity key and an amount; the key is the activity ID your scheduling tool wrote, or a task UUID." — rows A1020, 15000; optional Currency: "If set and it differs from the programme currency, rows are reported rather than booked.").
  5. Push quantities to the programme: Preview then Apply ("Schedule resources linked to a takeoff quantity keep the number they were last synced with — re-measuring the model does not move the programme's cost by itself. Preview first; applying writes cost.").

Bill of quantities

1 · Group by · 2 · Model · 3 · Prices · 4 · Export BOQ · 5 · KPIs and the measured table

Rate library

1 · libraries (name, version, currency, DRAFT/published) · 2 · Currency and New library · 3 · New version · 4 · Add a rate / Save prices / Publish

Cost control

1 · Programme · 2 · Budget / Earned / Spent / Cost performance / Forecast / Variance · 3 · Push quantities to the programme (Preview, Apply)

Import actual costs

Controls

BOQ: Group by · Model · Prices · Export BOQ · KPIs · table. Rate library: list · Currency · New library · New version · Add a rate · Save prices · Publish. Cost control: Programme · six tiles · Preview / Apply. Schedule tab: Import actual costs (Rows · Currency · Import).

What happens after

Publishing freezes a rate version so a bill can be reproduced later. Importing actual costs books AC per activity and moves CPI/CV/EAC from convention to result. Pushing quantities writes cost onto schedule resources (audit Schedule Actual Cost Imported, takeoff.library.create).

Connections to other modules

Models (quantities), Sheets (measurements with a classification "match a rate-library group so this prices with model quantities"), Standards & 4D (EVM, cost curve), Change Orders (commercial record; not auto-booked), Versions (quantity deltas), Accounting connector (cost codes, invoices — see Integrations).

Data in / data out

In: rates, actual-cost rows. Out: Export BOQ (CSV), cost figures in the progress report.

Permissions and approval

Libraries and publishing: Admin, Upload Engineer. Actual-cost import and Push quantities to the programme: Admin. Read: everyone. No maker-checker on prices; publishing is the control (a published version cannot be edited).

Common mistakes and troubleshooting

  • Priced total "Not priced" — pick a rate library under Prices; drafts price too, but publish before reporting.
  • Cost import rejected the whole batch — one malformed row rejects the batch on purpose (a half-applied import gives a plausible wrong CPI). The response names the row: unmatched key, a currency that differs from the programme's, a summary activity that would double-count, or a duplicate.
  • Quantities changed but the programme cost did not — push them (Preview → Apply).
  • Some elements "not carrying quantities" — the IFC lacks base quantities for those types; the BOQ says so rather than guessing.

Limitations and integration prerequisites

  • Rates are per classification group, not per element.
  • No ERP cost-code sync except through the accounting connector's cost codes.

Where to go next

Reports & analytics.