AI Tools for Shop Drawings: Checking Fabrication Drawings Against the Spec

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Tools for Shop Drawings: Checking Fabrication Drawings Against the Spec.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Tools for Shop Drawings: Checking Fabrication Drawings Against the Spec.

Yes, for the text half. AI can compare a specification's requirements with the notes, schedules and callouts on a shop drawing and list the mismatches with sheet references. It cannot be trusted with the geometry: dimensions, clearances, connection design and coordination with other trades. A qualified person still checks those, signs the submittal and carries the responsibility.

The split follows how the files are made. A shop drawing PDF exported from detailing software carries real text (general notes, bills of material, schedules) that a model reads well, plus linework that it can only look at as a picture. Claude's chat accepts PDFs up to 1,000 pages, but it analyses the visual content only in PDFs of 100 pages or fewer; beyond that it reads the text alone. A large package is therefore checked on its words, and the drawing remains a human job.

Follow me on Instagram@sagnikteaches

Two kinds of subcontractor appear below: a steel fabricator sending a frame package, and a mechanical contractor sending an air handling unit with ductwork. The figures and spec wording are invented for illustration, so replace them with your own.

Connect on LinkedInSagnik Bhattacharya

What the AI can check, and what stays with a person

Read the right-hand column as the real scope of the job. Everything marked "no" is the reason a human sign-off exists.

Subscribe on YouTube@sagnikteaches
CheckFirst pass by AI?Who verifies, and how
Materials and grades in the general notesYes, from textChecker searches the PDF for each quoted note
Coating and finish callouts (galvanising, shop primer, paint system)Yes, from textChecker confirms the note applies to that member or area
Bolt and weld notesNotes yes; weld symbols and sizes on details noChecker reads every weld symbol and bolt callout
Dimensions, elevations, member lengthsNoChecker closes each dimension string and compares with the structural and architectural sheets
Connection design against the loadsNoLicensed engineer, often under delegated design
Clearances and coordination with other tradesNoCoordination drawings, model overlay, site walk
Submittal contents against the spec's list (product data, certificates, test reports, samples)YesA person opens each attachment and confirms it belongs to the right product
Equipment capacities in product dataTables yes; footnotes and operating conditions unreliableEngineer or senior estimator reads the conditions beside each number
Drawing revision and addenda currencyPartlyCompare the title block revision with your drawing log
Substitutions ("or equal")Can flag a difference from the named productOnly the design team accepts an equivalent

Two rules cover most of the risk. First, no quote, no tick: every "met" must arrive with the exact note text and a sheet number you can find by searching the PDF. Second, "not found" means "not found in the text the model could read". A note can sit inside an image-only detail, a cloud-marked superseded revision or a sheet that failed to load.

Make the drawing PDFs readable before you ask anything

Three quick tests save a wasted afternoon. Open one sheet and use the search shortcut: if a note you can see on screen is not found, the PDF is a scan or its text was flattened into outlines, and the model is reading a picture. Next, copy a general note and paste it into a text editor; garbled characters mean the same thing. Finally, check the file size, because Claude's chat takes 500 MB per file and Projects take 30 MB per file.

Then shape the upload. Export the general notes and schedule sheets separately from the detail sheets, name each file by sheet range and revision ("S-001 to S-010, Rev B"), and keep one chat to one package. Large sheets are reduced to fit what the model accepts, so small dimension text can blur even when it is plain to you; check any figure it reads from linework against the sheet. If a scan needs text recognition, many PDF editors include it, but a recognised scan can still turn a 6 into a 5, so treat every number from one as unverified.

Prepare the spec so the AI checks requirements, not impressions

Start from the conformed specification, meaning the issued text with addenda and bulletins applied. Check against an outdated spec and every result is wrong with great confidence. Then cut the job into pieces the model can hold: the submittal procedures section, the one or two technical sections that govern the package (structural steel framing and metal fabrications for the steel work; metal ducts and the air handling unit section for the mechanical package), and nothing else. If your specs use section numbers such as CSI MasterFormat, use them as labels; if they use clause numbers, use those.

The first prompt extracts the requirements as a numbered table. Nothing is compared yet.

Read the attached specification sections. List every requirement a fabricator must meet, one per row, as a table with these columns: ID (R-01, R-02 and so on), spec section and paragraph, the requirement in the spec's own words, type (material, finish, standard, test, dimension or tolerance, submittal content, other) and where it can be checked (general notes, detail, schedule, product data, field).
Do not summarise or merge requirements. Do not add requirements that are not in the text. When you finish, state how many rows you produced.

Now check the count. Choose one section, count its "shall" statements by hand, and compare with the rows the assistant produced for it. If you count 44 and it returns 38, ask: "Which paragraphs of Section 2 did you not turn into rows?" A summary that quietly drops requirements is the commonest failure here, and it is invisible unless you count. The extraction takes the longest and is reusable: a later package under the same spec sections reuses the same table.

A few extracted rows look like this (illustrative wording):

IDSpec referenceRequirementTypeCheck in
R-0705 12 00, 2.1.AWide-flange shapes: ASTM A992MaterialGeneral notes
R-1205 12 00, 2.3.BHigh-strength bolts: ASTM F3125 Grade A325StandardGeneral notes, details
R-1505 12 00, 2.6.CGalvanise exterior steel after fabrication to ASTM A123FinishGeneral notes, canopy sheets
R-2305 12 00, 2.4.BAnchor rods: ASTM F1554 Grade 55MaterialGeneral notes
R-3101 33 00, 1.5.DSubmittal to include mill certificates for structural plateSubmittal contentPackage contents

The comparison pass, with a prompt that forbids guessing

Attach the requirement table and the shop drawing set in the same chat, then forbid inference. The status words matter because "not found" and "not met" lead to different actions.

Here are the requirement rows R-01 to R-38 and the steel shop drawing set.
For each ID, answer with exactly one of: MET, NOT MET, NOT FOUND, CANNOT TELL FROM TEXT.
For MET and NOT MET, quote the exact note or schedule text and give the sheet number. If you cannot quote it, you may not answer MET.
Do not infer anything from drawing geometry. Do not treat a missing note as proof that a requirement is unmet: use NOT FOUND.
Finish by listing every sheet whose text you could not read.

A returned extract (illustrative):

IDResultQuote and sheetWhat you do
R-07MET"All W shapes ASTM A992 Gr 50", S-001 note 3Search the PDF for the quote; tick
R-12NOT MET"Connection bolts ASTM A307", S-001 note 9Verify on the sheet, then correct or raise an RFI
R-15NOT FOUNDNo galvanising note on S-101 to S-110Look at the canopy sheets by eye; add the note if absent
R-23NOT MET"Anchor rods ASTM F1554 Gr 36", S-002 note 9Verify; this one needs an RFI because two documents disagree
R-31CANNOT TELL FROM TEXTPackage index lists "mill certs"; attachments not in the PDFCheck the actual attachments

Treat the statuses as a worklist. MET rows get a spot check by searching the quote. NOT MET rows get verified on the sheet before anything is sent. NOT FOUND rows get looked at by eye. CANNOT TELL rows go to whoever has the knowledge, and unreadable sheets are checked entirely by hand. If the assistant fills the table without a single NOT FOUND or CANNOT TELL, be suspicious rather than pleased.

One steel package worked through, with the numbers

An illustration: a 24-sheet package for a two-storey steel frame. The extraction from the framing, fabrications and submittal sections gave 38 requirement rows: 12 materials, 6 finishes, 8 standards for bolts and welds, 5 inspection and test items and 7 submittal contents. The count check against one section matched.

The comparison run returned 30 MET, 3 NOT MET, 2 NOT FOUND and 3 CANNOT TELL, plus one sheet it could not read. The checker then worked through it:

  • Of the 3 NOT MET rows, 2 were real (the anchor rod grade and the bolt standard) and 1 was a false alarm, because the note sat on a detail superseded in the latest revision.
  • Of the 2 NOT FOUND rows, 1 was real (no galvanising note on the canopy sheets) and 1 was present, inside the sheet the model could not read.
  • Of the 3 CANNOT TELL rows, 1 turned out to be a real gap (the shop primer was named in the spec but not on the drawings), 1 was an RFI to the engineer about an equivalent steel grade, and 1 was settled by opening a certificate.
  • A search spot check of 8 of the 30 MET rows found all 8 correct.

The hand check of the geometry then found two further problems the AI had never been asked about: a fillet weld symbol showing 5 mm where the typical detail called for 6 mm, and a dimension string that did not add up to the overall length. The package left with six corrections and one RFI, and the checker's time on geometry did not shrink. The saving is in reading and cross-referencing text, not in the drawing check. Time your next two packages with and without the assistant before you believe any number, including this one.

A mechanical package, where the numbers hide in footnotes

Product data tables are where models do best and where the mistakes cost most. Take an air handling unit submittal. The equipment schedule calls for supply airflow of 4,000 L/s at 400 Pa external static pressure, a motor of 15 kW at most and a cooling coil of 120 kW. The manufacturer's sheet shows 4,000 L/s, 350 Pa and 14 kW, and a 120 kW coil.

A first run flags the 350 Pa against 400 Pa and clears the coil as "120 kW, MET". A footnote on the manufacturer's sheet gives the coil capacity at 6 °C entering water. The schedule's design basis is 7 °C, at which the capacity is lower. The model matched numbers and ignored conditions. The fix is a standing instruction:

For every performance figure you compare, state the operating conditions printed beside it (temperatures, pressures, filter state, altitude, fluid) and flag any difference from the conditions in the equipment schedule. If conditions are not stated, say NOT STATED.

With that instruction the second run lists the 6 °C versus 7 °C difference as a flag for the engineer. The same package has duct requirements (galvanised sheet to a named standard, a pressure class, sealing) that read well from text, and a service clearance note ("900 mm in front of the access doors") that the model can quote but cannot test against your layout. Whether the room really has 900 mm is a drawing check.

The pattern holds for other trades. For a stair and balustrade fabricator, finish, fixings and infill callouts are text and can be compared. A finish sample is a physical approval, and no model can judge a colour from a PDF.

Logging the flags: an RFI draft and a log row

Do not let flags live in a chat window. Each confirmed mismatch becomes either a correction on your side or an RFI, and the assistant can draft the RFI from facts you give it:

Draft an RFI from this flag. Use only the quotes and sheet numbers I give you. Leave cost and schedule impact as "to be assessed" unless I give a figure.
Flag: R-23. Spec 05 12 00, paragraph 2.4.B requires anchor rods to ASTM F1554 Grade 55. Sheet S-002, general note 9 says ASTM F1554 Grade 36.

A usable result (illustrative):

RFI-014: Anchor rod grade, frame lines A to D
Spec reference: Section 05 12 00, paragraph 2.4.B (anchor rods to ASTM F1554 Grade 55).
Drawing reference: S-002, general note 9 (anchor rods ASTM F1554 Grade 36).
Question: Which grade governs for the anchor rods at the base plates?
Our proposal: Grade 55, as the specification states. We will hold the anchor rod order until you confirm.
Cost and schedule impact: to be assessed.

Keep the log in a sheet or in Bluebeam's Markups List, which its feature list says supports custom statuses and saved filters (check which plan includes them). One row per item is enough:

No.Sheet and noteSpec sectionQuestionStatusLinked package
014S-002, note 905 12 00, 2.4.BAnchor rod gradeOpen, response due before rod orderSteel package 02, Rev B
015S-104, canopy05 12 00, 2.6.CGalvanising note missing; confirm intentAnswered, note addedSteel package 02, Rev B

The tutorial on RFIs, logs and reports covers the log itself in more depth, and the one on reading drawings with AI shows what to check afterwards.

Where chat assistants, Bluebeam and dedicated reviewers fit

Prices below are the vendors' own list prices, checked in October 2026.

OptionCostSuitsLimits to know
ChatGPT or Claude, personal plan$20 a month (Claude $17 a month billed annually)Extracting requirements, comparing text, drafting RFIsClaude chat takes 20 files and 500 MB per file; visual analysis only up to 100 pages; Projects take 30 MB per file
ChatGPT Business or Claude Team$25 a seat monthly, $20 annually; two seats minimumTeams that want no training on their content by defaultStill not a substitute for the contract's confidentiality terms
Bluebeam Revu, Core$330 per user a yearOverlay and compare of drawings between revisionsCompares and marks up; the AI features are on the Max plan
Bluebeam Max$590 per user a year (introductory price)AI drawing reviews, AI drawing comparisons, AI integration via MCPVendor describes design issues such as missing sheets and changes across disciplines and scales; it does not describe checking a package against your spec
NomicFree; Individual $20 a month; Business $40 per user a month with a 25-seat minimumIts pricing page lists a "Submittal / Spec Review" useThe Business tier needs 25 seats, so a small shop is limited to Free or Individual; trial before paying
Datagrid (describes itself as a Procore company)No price on the agent pageIts page describes comparing shop drawings and product data with spec sectionsThe agent page gives no accuracy figures and does not say who approves, so plan your own sign-off

Bluebeam's page says Max connects Revu to AI tools including Claude through the Model Context Protocol, which lets you run prompts against open documents. That is the vendor's description; test it on one of your own finished packages before paying the Max price. Dedicated tools describe the same compare-and-flag job as the prompts above, with spec-section tagging added, so ask each one to show the quote behind every flag.

A planted-error test before you trust any tool

Take a finished, approved package and a copy of it. In the copy, plant five errors: change a bolt grade in the general notes; delete a galvanising note; alter one dimension in a string; swap one model number in the product data; change a temperature in a footnote. Run your prompts on the copy and score the result.

  1. The four text plants (bolt grade, deleted note, model number, footnote temperature) should be caught in two runs out of three. If they are not, use the tool only to build the requirement table.
  2. The altered dimension is your control. A tool that finds it deserves a closer look at how it did so, because reading geometry is the part models are weakest at. A tool that misses it has shown you where your own checking has to stay.
  3. Note which plants it reported as MET with a quote. A confident wrong quote is the most dangerous output and the reason the quote rule exists.

Repeat the test when the vendor changes the model or you change plan. These products update monthly, and yesterday's result does not carry over.

A first week on one finished package

Pick a package that was already approved, so you know the right answers. On day one, check that the PDFs are readable and conform the spec sections. On day two, run the extraction and count one section by hand. On day three, run the comparison and score it against what the original checker found, noting what the assistant caught that the checker missed and the reverse. On day four, run the planted-error test. On day five, decide which checks go to the assistant for good (usually the requirement extraction and the text comparison), which stay manual (all geometry), and who owns the record.

Time each step. If the assistant does not shorten the reading and cross-referencing by a margin you can feel, stop: the subscription is cheap, but your checker's attention is not.

Before you upload: the contract, the plan and the sign-off record

Three checks sit around the technical work. First, the contract. Some projects restrict where drawings and specifications may be stored or sent, and some information may not go to a third-party chat tool at all; the checklist for screening controlled information shows the kind of question to settle in writing. Second, the plan. ChatGPT Business and Claude Team do not train on content by default, and personal plans have a training switch in privacy settings; the tutorial on training and client data compares them. Third, the record, because the stamp on a submittal is yours. Keep one entry per package:

FieldExample entry
Package and revisionSteel package 02, Rev B
Spec sections and revision01 33 00, 05 12 00, 05 50 00, conformed with Addendum 2
AI useRequirement extraction and text comparison, tool and date
Results38 requirements: 30 met, 3 not met, 2 not found, 3 cannot tell
Verified byNamed checker, date, method (quote search, by eye)
Hand-only checksDimensions, weld symbols, connection design, coordination
RFIs raised014, 015
Signed off byNamed person with authority

Finally, a rule for who checks what. If a flag touches safety, structural capacity, fire rating or a performance guarantee, it goes to the engineer or the senior person, whatever the AI said. If it touches wording, finishes or the contents of the package, the checker decides. Anything the assistant called "met" without a quote counts as unchecked. And if a design decision is in play, such as accepting an equivalent steel grade or a different manufacturer, only the design team can make it; the assistant's job ends at pointing out the difference.

Questions subcontractors ask about AI and submittals

Can I upload project drawings to ChatGPT or Claude?

Only if the contract and the project's security rules allow it. Read the confidentiality clause first and ask the main contractor if unsure. Business plans such as ChatGPT Business and Claude Team do not train on your content by default, while personal plans have a training switch to turn off. Restricted or controlled information stays out of any chat tool.

Does an AI check replace the engineer's review of connections?

No. A model can compare a note with a requirement, but it does not know the loads, and it cannot be the licensed engineer who accepts responsibility for connection design. Treat any connection flag as a prompt for the engineer, and treat a clean result as unchecked until a person has looked.

How do I know the AI did not skip a requirement?

Have it number every requirement first and state the total, then report exactly one result per number. Count the shall statements in one spec section by hand and compare. If the totals differ, ask which paragraphs it left out. A planted-error test on a finished package is the stronger check.

What if my drawing PDFs are scans with no selectable text?

Then the model is reading pictures, and a NOT FOUND result means little. Test by searching the PDF for a word you can see on the sheet. If the search fails, run text recognition first or check that package by hand. Never accept a clean result from a scan.

Further reads

Sources: Bluebeam pricing and Max pages, Anthropic help centre (uploading files), Nomic pricing page, Datagrid home and submittal review agent pages, OpenAI and Anthropic plan pages, as checked in October 2026.

Want a submittal check you can defend?

On a 1:1 call we'll map your submittal steps, pick the checks worth giving to an assistant first, and set up the records so a human sign-off still means something.

Book a 1:1 call with me