bim-pdf

Work with PDFs your way — split a combined sheet export into individual files, shrink a set before sending to a client, extract element data for a takeoff, or embed structured data for archiving. If you've ever gotten garbled text or wrong element IDs from a PDF tool on a Revit export, it's because most tools don't understand how Revit encodes its output. bim-pdf does.

PDF analysis and manipulation for AEC workflows. Zero dependencies — handles Revit's specific PDF encoding natively.

Revit PDF specifics

Revit exports PDFs with Adobe PDF Library 18.0.5 (PDF 1.6). Every visible element is wrapped in a BMC/BDC tagged content block encoding its ElementId. Text uses Type0 Identity-H encoding — standard extractors return garbage. bim pdf marked and bim pdf text handle both correctly.

Verbs

Verb What it does
bim pdf info <file> page count, version, producer, XMP, has_bim_tags
bim pdf pages <file> per-page dimensions, OCG layers, sheet number labels
bim pdf marked <file> extract BIM element tags (ElementIds) with bounds
bim pdf text <file> text with coordinates, ToUnicode CMap decoded
bim pdf page split <file> split combined export into per-page PDFs
bim pdf page merge files... --out merge multiple PDFs
bim pdf page collect <file> --pages 1,3,5-8 extract specific pages
bim pdf page rotate/crop rotate pages or crop to bounding box
bim pdf optimize <file> reduce file size without re-rendering
bim pdf stamp add/remove watermark text or image
bim pdf security encrypt/decrypt password protection
bim pdf annot list/remove annotation management
bim pdf form fields/fill/flatten AcroForm operations
bim pdf attach list/extract/add/remove embedded file attachments
bim pdf bookmark list/export/import outline/bookmark tree
bim pdf enrich <file> sidecar join marked output with JSON lookup
bim pdf package <file> metadata embed JSON as PDF/A-3 attachment (PDF–BIM Package)
bim pdf render <file> rasterize pages to PNG/JPG (requires Ghostscript)
bim pdf viewer <file> local browser viewer; click element → Revit zooms to it

For agent use: /pdf/llms.txt