Drawings change constantly in the design office, sometimes several times in the same day. The revision goes up, it gets published, and the sheet pinned up on site is still the one from two weeks ago.
The problem isn’t that the drawing changed. The problem is that the person holding it has no fast way of knowing it changed.
An installer really only has two options to check:
- Open the model. Requires access and a computer. At the workface, that almost never happens.
- Go into the CDE. Same problem.
So in practice nobody checks. And when the mistake surfaces, you get the line you always get: “nobody told me it had changed.”
The solution
A QR code stamped on every drawing.
The idea underneath it is what makes the whole thing work: the QR doesn’t carry the answer, it carries the question.
The code doesn’t say “this drawing is fine”. It says “I am sheet A-101 at revision 2”. When somebody scans it, the answer is worked out right then by looking up the current revision. That’s why a drawing printed a month ago still gives a correct result today: the paper hasn’t changed, but the comparison is new.
The result is visual and immediate:
- ✅ Up to date — the revision on the paper is the current one
- ❌ Outdated — the paper is at revision 2, the current one is 3
- ⚠️ Sheet not found — that drawing isn’t in the database
No app to install, works with the phone’s native camera, and no language barrier: the colour and the icon speak for themselves.
How it’s built
The system has three pieces.
1. The Revit addin
Written in C# against the Revit API, using QRCoder to generate the codes.
It adds its own ribbon tab with a single button, and clicking it opens a dialog listing every sheet in the project:
- A search box that filters the list in real time
- Checkboxes, with Select All and Deselect All
- A counter showing how many sheets you have selected
On generate, for each selected sheet the addin reads the sheet number and the current revision, builds the verification URL, generates the QR code and places it on the drawing at a fixed 100 × 100 mm.
Two details that separate a script from something you can actually hand to a team:
The position isn’t hardcoded. The addin looks for two parameters on the title block, RevitVerify_X and RevitVerify_Y, holding the position in millimetres. If it finds them, that’s where the QR goes. If not, it falls back to a default. So every office adapts it to its own title block without touching the code.
Everything happens in a single transaction. Whether you generate four QR codes or forty, one Ctrl+Z undoes the lot. And on regeneration, previous QR codes on that sheet are deleted before the new one is placed, so they never pile up.
2. The database
A table with three columns: sheet number, current revision, and date last updated.
In this version it’s an online spreadsheet, precisely so there’s nothing to depend on: no login, no server of my own, and the verification page can query it directly.
3. The verification page
A single HTML page with no dependencies. It reads the sheet number and revision that came through in the QR’s URL, queries the database, compares them, and renders the result.
The database update
There’s one manual step worth stating plainly, because it shapes how you’d use this on a real project: when a revision changes, the QR codes have to be regenerated before publishing or printing.
The full workflow is:
- The revision changes in Revit
- Run the addin to re-stamp the affected sheets
- Export the CSV and update the database
- Publish or print
Skip step 2 and a brand new drawing goes out to site carrying a QR code that still announces the previous revision, which would come back red for no reason.
To cut that friction down, the dialog includes an Export CSV button that dumps every sheet in the model with its number, its revision and the date, in exactly the same columns the database uses. Open it, paste it, and you’re in sync.
The next step for this project is removing that manual step altogether by hooking the system into CDE publishing, so the database updates itself. If you can think of an elegant way to do that, write to me at hello@gonzalojl.com.
Download and use
The addin is free and open source, and the code is on GitHub. The repository README has the steps to build and install it, and the structure your spreadsheet needs to have.
Several companies sell this as a professional service, with far more guarantees behind it. If what you need is a production system for a contract, look at those first. If what you want is to understand the mechanism and build it yourself, this will do the job.
My BIM Tools
This addin is part of My BIM Tools. You can find all the tools here or on my GitHub profile.