Automated quantity takeoff
A structural engineering firm was losing 3 to 4 hours per project manually copying data between PDF drawings, Excel spreadsheets, and their calculation software. We automated all of it.
Details anonymized and adapted for confidentiality.
The problem
An 8-engineer structural firm. Every project starts the same way: open the client’s PDF drawings, identify the elements to be sized, copy the dimensions into an Excel spreadsheet, then transfer everything into the calculation software. By hand. Every time.
3 to 4 hours lost per project. With 3 to 4 projects running in parallel, that’s a day and a half of purely mechanical work per week - per engineer.
And mistakes happen. A number misread, a section missed. Nobody catches it until the calculation results don’t add up.
What we built
A Python pipeline that takes a drawing PDF as input and produces a structured quantity takeoff ready to import into their calculation software.
Extraction from PDFs - recognition of structural elements (beams, columns, slabs, foundations), reading of dimensions and annotations, identification of section types.
Automatic structuring - the extracted data is organized in the exact format expected by the team’s software. No manual handling in between.
Validation and alerts - the system flags areas of uncertainty (poor quality drawings, missing dimensions) so the engineer can focus their review where it actually matters.
The main challenge: hand-annotated drawings from clients. Standard OCR breaks down on dense handwriting. We added an uncertainty detection layer that identifies low-confidence zones and requests targeted manual validation - engineers only review the 10 to 15% of elements the system isn’t confident enough to handle automatically.
Results
- 2h30 saved per project on average (varies with drawing complexity)
- Automatic detection rate: 86% of elements without human input
- Paid for itself in 4 weeks based on the team’s project volume
- Engineers do engineering, not data entry
Stack
- Python - PDF extraction, data structuring
- Vector parsing + targeted OCR on degraded areas
- Export to native format of the calculation software
- Local deployment (sensitive data, no cloud)