Inspiration
Checking shop drawings against the structural plan is slow, manual work, and a missed rebar difference is expensive on site. We wanted to see how far plain text extraction can go before any heavy model is needed.
What it does
For the CLP project, it extracts the rebar callouts from the structural plan and from the shop drawings, matches them by sheet and by element, flags the callouts that appear on one side only, and writes one PDF report per affected plan sheet with the page and coordinates of each occurrence.
How we built it
- Extraction with PyMuPDF at word level: quantity and diameter (
9-25M), spacing (15M@300), counts in parentheses, bar marks. Each item keeps its file, sheet, page and position. - Sheet attribution from the title block: 28 of 28 plan pages and 12 of 12 shop files resolved.
- Matching: a multiset comparison of callouts between the plan sheet and the shop sheets of the same element type, and between elements identified by their grid label.
- Reports with ReportLab, one per sheet. The whole pipeline runs locally in a few seconds, without any model.
Challenges we ran into
- Some shop-drawing annotations are not in the PDF text layer in a joinable form (they are probably drawn as vectors). Recovering them needs rendering and OCR of those regions.
- One known mismatch shows the same text on both sides; telling them apart needs a numeric reading of the spacing, which a text comparison cannot do.
- Scope: only the CLP project has a text layer; the other projects are scanned drawings and are not supported.
Accomplishments that we're proud of
- Recall measured against the 6 known mismatches of
CLP_dismatch.xlsx, and reported two ways: strict 3 of 6 (both the plan value and the shop value are flagged) and loose 6 of 6 (the plan value is flagged). - Every extracted item carries its sheet and coordinates, so each candidate can be checked on the drawing.
- Limits stated plainly: 633 candidates on the 6 sheets, so precision is low; the prototype favours recall.
What we learned
- The title block is a more reliable source for the sheet number than cross-references in the drawing.
- A simple comparison already finds half of the known mismatches strictly, and shows exactly where the remaining ones hide.
What's next for Du plan aux dessins d'atelier
- Render and OCR the regions where annotations are vector-only.
- Read spacing and quantities as numbers, not as text.
- Better association of callouts to elements, to reduce the number of candidates.
- Support for scanned drawings in the other projects.
Log in or sign up for Devpost to join the conversation.