The consultant confirms it in a PDF; the boss finds it missing on the section three issues later. Dictum keeps the project's decision register inside the model: what was decided, who decided it and which document it came from. Then it measures where each decision still has to be said, walks you through the tagging round, checks the issued PDFs — and warns from inside Plot and Canon before a package goes out short.
A decision lives in an email, a minute, a consultant PDF — and it has to be said on the plan, the section, the detail and the schedule. Nothing in Revit counts where it is still missing.
Decisions go in — recorded and situated on the model. What comes out is the drawing set actually saying them: measured coverage, stamped notes, a verified PDF, and warnings inside the tools the team already uses.
Tap Input or Output to isolate a half — the other collapses.
The register is DataStorage inside the .rvt — it travels with the model, not with an app.
Record a decision… captures the code — given, not chosen, because the code is the link between this register and every note printed from it — the decision itself, who decided it, the consultant, and the source document down to revision and page. From then on, “where did we decide this?” has one answer, inside the model.
Every topic demands the same documents every time, and the office knows which: a short tag on the plan, a long note on the partition detail, nothing on the elevations. A template per topic writes that down, and its ordered rules cut the rest away — a sheet no rule names is never asked for at all. Without one, a wall visible on fourteen sheets is fourteen notes owed, and the missing count becomes a number nobody believes.
| DOCUMENT | SAID AS | ONLY ON SHEETS | OPTIONAL | |
|---|---|---|---|---|
| Plan | tag | A-2* | ↑ ↓ ✕ | |
| Section | long note | — | ↑ ↓ ✕ | |
| Detail | long note | A-45* | ↑ ↓ ✕ | |
| Schedule | schedule field | — | ↑ ↓ ✕ |
The first rule that matches a sheet is the one that applies, so the order is the priority.
A recorded decision is “not situated” until something in the model carries it — Place markers… or Pick element(s)…, each a named transaction. The Not situated chip keeps the queue visible, and the detail panel's primary button follows the stage, so the next step is always the button under your cursor. Coverage itself is a measurement with a date: the MISSING tile shows a dash, with the caveat in its tooltip, until somebody has actually measured — and Canon's audit refuses to answer on a stale measurement rather than shout false numbers.
| Code | Decision | Source | Discipline | Standing | Told on | |
|---|---|---|---|---|---|---|
D-014 | Party walls to achieve 62 dB DnT,w — lined both sides. | MT-ACU-RPT-004 · Rev B | Architecture | Live | 1 of 3 | |
D-009 | Lobby floor: terrazzo tile 600 × 600, slip class R10. | Minute 12 · item 4 | Architecture | Live | verified | |
D-011 | Roof outlets doubled at the north parapet. | MT-CIV-LTR-002 | Civil | Recheck | not situated | |
D-006 | Balustrade fixing: side-fixed, no top plate. | MT-STR-RPT-001 · Rev A | Structure | → D-021 | — |
A-201 · Plan — Level 1 · tag
A-310 · Section AA · missing
A-451 · Partition details · missing
A revision arrives and the quarantine falls on exactly the live decisions read from that document — not the model, not a guess, that document. Dictum never claims to know what changed; it knows which ones to look at, and it re-points them at the new file so "Open source" stops opening the superseded one. The way back is typed by a person, and the honest exit writes the revision it was read against. Withdrawn keeps the entry, because the code is already printed on issued paper.
Is the decision still true? This axis is TYPED — the app never guesses it. Whether it has been said on the drawings is measured separately and is not touched here.
A decision whose element has gone no longer knows what it is about, and every number above it stops being true. The row is never thrown away — it is the last clue to where it belonged. Dictum proposes what stands there now, ranked: the same Mark outranks distance, same type in the same place comes next, and a tie makes it refuse rather than pick. Only confident matches arrive ticked. A decision on the wrong element gets signed off; an orphan is at least visible.
There is no dialog asking you to define a discipline before you can use it. Type a word that is not on the list while recording a decision and it joins the list on its own; this screen is for tidying up afterwards. What it will not do is quietly change what is already recorded. A word the register uses but your list has lost stays on offer for exactly that reason — so opening one of those decisions cannot change it behind your back. Retiring a word stops it being offered for the next decisions and never rewrites the ones already made. And a person or a consultant is never renamed across the register at all: who a decision came from is a recorded fact, not a label.
Most add-ins that place something make you adopt their family, named their way, and break when you rename it. Dictum inverts that: you point at your own family and map its parameters to the fields, so nothing has to be renamed to suit an app. And the choice to place a real model family is deliberate engineering, not laziness — it makes REVIT work out which views see a decision, instead of the app recomputing crop, view range and scope box view by view. It also refuses to place anything into the wrong design study: it checks your setting against the option Revit has ACTIVE and stops, because the API cannot switch the option itself. The only footprint left in the project is one readable code list a native tag or schedule can read; everything else lives in the seal, invisibly.
Fully told, and the consultant has since changed his mind — that is the alarm nobody else sees, and it only exists because the two axes never share a column.
The tagging round only lists what still owes. The verification reads the paper that was actually sent. And the seams warn from inside the tools the team already uses.
Start the round… walks the chosen sheets and lists only the views that owe a note — so the list shrinks as you work — and the earned empty state says it in the app's own words: “Every live decision is told on every sheet its expedient asks for. This list being empty is the proof — it is not a screen that failed to load.” Say them here places every note a view owes in one transaction. The map paints the model by What is missing — your own overrides are photographed first and given back on Clear — and Back to normal undoes markers and paint without closing; it also happens on its own when Dictum closes.
Every other number in Dictum is measured on the model. This one is measured on the drawing that was actually sent — the only document the person who complains ever reads. If the PDF does not say it, it is not said. Pairing PDFs to sheets is proposed, not decided; a PDF with no readable text is “not verifiable”, never counted as a missing note — an honest unknown beats a false alarm.
D-014 · A-310 · Section AA — NOT printed
D-014 · A-451 · Partition details — not verifiable (no text in the PDF)
D-014 · A-201 · Plan — Level 1 — printed
Plot's issue gate warns — never blocks — before a pack goes out with outstanding notes, and stays silent on a model Dictum never touched. Canon's audit lands its own rule — “A project decision that is still in force is not written on every document it has to be.” — in the report the team already reads, and refuses to guess on a stale measurement. Lens shows the decisions on the element you click. Graft carries the setup to the next project. And the Chronicle bridge answers “which changes have no decision behind them” only when you open it — a lens, never an alarm.
Inside the .rvt, the register exists only for whoever opens Revit. One self-contained HTML file takes it to the coordination meeting: what is missing first, then every decision with who decided it, which revision it came from and which sheets still owe. The band across the top says whether the coverage was actually measured, and when — an unmeasured register never reports an all-clear, it reports that nobody looked. It is a photograph of the reading on screen, caveats included.
| Code | Decision | Impact | Owner | Missing on | Said | Source |
|---|---|---|---|---|---|---|
| D-014 | Party walls to achieve 62 dB DnT,w — lined both sides. | Blocks issue | Consultant | A-310, A-451 | 1 / 3 | MT-ACU-RPT-004 rev B p.12 |
| D-021 | Balustrade fixing: side-fixed, no top plate. | Minor | Consultant | A-462 | 2 / 3 | MT-STR-RPT-001 rev C p.7 |
A change history and a decision register answer different halves of the same question, and neither is much use alone: one tells you a wall moved on Tuesday, the other tells you the client asked for a wider corridor. Put them together and two lists fall out. Changes: elements that moved in a way a project decision could explain and that carry no decision — and only in the categories this project already decides about, so it does not nag about furniture. Claims: decisions the register says are settled everywhere, whose subject the history has never seen change. That second one is deliberately NOT called an error, because “leave it as it is” looks exactly like this. Recording the missing decision fills in who and when from the history itself.
This is an actual HTML report Dictum exports — self-contained, works offline, shareable as one file. Scroll it right here, or open it full-screen.
Dictum ships on the Sheets panel of the BIMIO tab. Record it once, see where it still goes unsaid, and let the suite warn before the paper goes out short. Revit 2024–2027, full trial, no card.