Pre-process a set of construction drawing PDFs into structured text indexes so Claude can answer questions faster, cheaper, and more accurately.
Built by Hamza Abdul Jabbar | AutoConst
Raw construction drawing PDFs are terrible AI input.
- Claude breaks images into 16×16 pixel tiles — tiny drawing details get lost
- A semi-dashed line (cold water) looks identical to a double-dashed line (hot water) at tile resolution
- Merged drawing sets regularly fail to upload even under the 30MB limit
- Claude Cowork burns 60,000–70,000 tokens per question processing the full PDF set every time
- Element counts are approximate — overcounting is common
- Cross-references between sheets are not followed
Run this skill once on a new drawing set. It builds lightweight text indexes. Every future question reads the indexes first, then targets only the specific sheet needed.
| Raw PDF approach | Drawing Analyzer | |
|---|---|---|
| Tokens per question | 60,000–70,000 | 5,000–8,000 |
| Time per question | 5–10 minutes | 30–60 seconds |
| Footing count accuracy | Overcounts | Correct, by type |
| Area takeoff accuracy | Visual estimate | 96% tested |
| Symbol interpretation | Guesses | Reads actual legend |
| Cross-references | Not followed | Mapped and followed |
Warehouse slab area on an 11MB drawing set:
- Drawing Analyzer: 13,250 m²
- Manual Bluebeam measurement: 13,600 m²
- Accuracy: 96.7%
your-project/
├── indexes/
│ ├── drawings.md # Master register — loaded on every query (~5KB)
│ ├── sheet-classification.md # Every sheet classified by type and content
│ ├── cross-reference.md # Which drawings reference which other drawings
│ └── symbol-library.md # Every symbol, line type, abbreviation from all legends
└── sheets/
├── SHEET-001.pdf # Individual sheet PDF
├── SHEET-001.txt # Extracted text/vector layer
├── SHEET-001.png # Rendered image at optimal resolution
├── SHEET-002.pdf
└── ...
- Claude desktop app
- Claude Pro subscription ($20/month) — required for Claude Code
- Python 3.8+ (for the processing scripts)
- Your construction drawing PDF set
pip install pypdf PyMuPDF- Download
drawing-analyzer.skillfrom the Releases page - Open the Claude desktop app
- Go to Settings → Skills → Install Skill
- Select the
.skillfile - Open a new Claude Code session and type:
run drawing analyzer on my construction drawings
git clone https://github.com/YOUR-USERNAME/drawing-analyzer.git
cd drawing-analyzer
pip install pypdf PyMuPDFThen in Claude Code, point it at this folder and say:
run drawing analyzer on my construction drawings
Open Claude Code in the folder containing your merged drawing PDF.
run drawing analyzer on my construction drawings
Claude will:
- Split the PDF into individual sheets
- Extract text layer from each sheet
- Classify every sheet by type
- Build the cross-reference matrix
- Extract symbol library from all legends
- Create the master drawings register
This takes 5–15 minutes for a typical set (10–30 sheets). Larger sets (50+ sheets) allow 30–60 minutes.
What is the area of the warehouse slab?
How many F6 footings are shown on the foundation drawings?
What does a double-dashed line mean on the hydraulic drawings?
What details does the F3 footing cross-reference?
How many roller doors are shown on the floor plan?
What is the floor-to-floor height on the section drawings?
Claude reads the indexes first, identifies the relevant sheet, then reads that sheet's text and image. It only opens the raw PDF if polygon extraction is needed for an area takeoff.
For precise area calculations, Claude runs the polygon extractor on the specific sheet:
What is the ground floor slab area? Run polygon extraction to confirm.
This extracts closed polygon geometry from the vector layer, applies the drawing scale, and returns area in m². Always cross-checked against dimension annotations.
drawing-analyzer/
├── README.md # This file
├── SKILL.md # Claude skill definition
├── scripts/
│ ├── split_drawings.py # Split merged PDF into individual sheets
│ └── extract_polygons.py # Polygon extraction for area takeoffs
├── references/
│ ├── drawing-types.md # Classification guide for 15 drawing types
│ └── takeoff-guide.md # How to run accurate quantity takeoffs
├── indexes/ # Created by the analyzer (gitignored)
│ └── .gitkeep
└── sheets/ # Created by the analyzer (gitignored)
└── .gitkeep
The skill uses Python scripts for mechanical tasks that do not require intelligence: splitting the PDF, extracting text, rendering images. These are fast and cheap.
It uses Claude for tasks that require actual understanding: classifying what is on each sheet, extracting symbol meanings, mapping cross-references. Pattern-matching scripts fail too often on real construction drawing sets because formatting varies too much between designers and firms.
When you ask a question after the analyzer has run, Claude follows this order:
- Read
indexes/drawings.md— understand the drawing set structure - Read
indexes/sheet-classification.md— identify the relevant sheet(s) - Read
indexes/cross-reference.md— check if other sheets need to be followed - Read
indexes/symbol-library.md— confirm symbol meanings before interpreting - Read the target sheet
.txt— get vector/text data - View the target sheet
.png— visual confirmation - Run polygon extraction on the target
.pdfonly if area takeoff is needed
This replaces processing 60,000–70,000 tokens of raw PDF with 5,000–8,000 tokens of targeted reading.
- Symbol interpretation — reads actual legend, not general knowledge guesses
- Element counting — reads from schedule text files where available
- Cross-references — mapped before any query runs
- Token cost — ~90% reduction
- File size issues — individual sheets are 100–400KB, no upload failures
- Area takeoffs — 96% tested accuracy via polygon extraction
- Scanned drawings — no text layer to extract. All quantities are low confidence. Recommend getting CAD/BIM files for cost-critical takeoffs.
- Dense overlapping geometry — polygon extraction can double-count. Always run the dimension annotation sanity check alongside.
- Engineering verification — this skill produces quantities for estimating. It does not verify structural adequacy or code compliance. All quantities going into contracts need a qualified reviewer.
- BIM is always better — if you can get the Revit or ArchiCAD model, use the Autodesk MCP connector instead. This skill exists because most construction firms never receive the BIM model on bid projects.
Issues and pull requests welcome. Particularly useful contributions:
- Improved classification prompts for specific drawing types (electrical single line diagrams, fire services)
- Better polygon extraction for scanned drawings (OCR integration)
- Support for DWG files directly (not just PDF exports)
- Additional drawing type reference guides
MIT License — free to use, modify, and distribute.
Hamza Jabbar
Construction AI at hamzajabbar.online
Building AI automations for construction firms
If this helped you, share it with someone in construction who is still manually reading drawing sets.