A bim-pdf package is a standard PDF. It opens in Acrobat, Bluebeam, and every other viewer without any plugin. The BIM data is a separate layer, embedded alongside the drawing — not replacing it.
A bim-pdf package is a PDF with one or more JSON sidecars attached as PDF/A-3 associated files. The drawing is unchanged. The sidecars travel with it.
The standard sidecars:
| File | What it holds |
|---|---|
elements.json |
Every BIM element on every page: ElementId, category, type, page, and bounding box |
marks.json |
Annotation marks from a review session |
scales.json |
Per-page scale factors and drawing units |
titleblock.json |
Sheet metadata extracted from the title block |
An agent querying the package reads these files directly — no Revit, no database, no special viewer required.
Export a PDF from Revit normally. Then package it with the BIM element data.
bim pdf marked drawings.pdf --out elements.json
{"page":1,"element_id":1234567,"category":"Walls","bounds":[120.4,340.2,180.1,380.5]}
{"page":1,"element_id":1234568,"category":"Doors","bounds":[200.0,340.2,260.0,380.5]}
bim pdf package drawings.pdf elements.json --out drawings.bim.pdf
{"ok":true,"data":{"path":"drawings.bim.pdf","sidecars":["elements.json"]}}
The output file opens in any viewer. The BIM sidecar is invisible to viewers that don't know to look for it; it is readable by anything that does.
With a packaged PDF in hand, an agent needs no live Revit session.
bim pdf bim.list drawings.bim.pdf
{"ok":true,"data":{"attachments":["elements.json","titleblock.json"]}}
bim pdf bim.extract drawings.bim.pdf --name elements.json | jq '[.[] | select(.category=="Doors")]'
[
{"page": 1, "element_id": 1234568, "category": "Doors", "bounds": [200.0, 340.2, 260.0, 380.5]},
{"page": 2, "element_id": 1238901, "category": "Doors", "bounds": [145.0, 210.5, 205.0, 250.5]}
]
bim pdf bim.extract drawings.bim.pdf --name titleblock.json
{"project":"Lakeview Community Center","sheet":"A101","revision":"3","date":"2026-05-15","discipline":"Architecture"}
The format is designed so that capability escalates with tooling, but nothing breaks at lower rungs.
| Viewer | What they see |
|---|---|
| Any PDF viewer | The drawing, as normal |
bim-cli bim.list |
A list of attached sidecars |
bim-cli bim.extract |
The full BIM element data, ready to pipe |
| A future native viewer | Highlighted elements, query results overlaid on the drawing |
A client who receives the PDF sees the drawing. An agent that receives the same file can answer "how many structural columns are on sheet S201?" without any additional files.
The complete format spec is at bimpdf.com — field definitions, sidecar schemas, PDF/A-3 embedding conventions, and versioning.