All case studies
Project

Rian Blue: ductwork takeoff from PDF drawings, checked instead of traced

Rian Blue reads a mechanical bid set the way an estimator would, finding every duct run, size, fitting and air device, and turns it into the estimator’s own workbook. The estimator answers only the questions the tool could not settle on its own.

We built it with estimating teams of commercial sheet-metal contractors in Chicago, around the takeoff they already did by hand in Bluebeam and Excel.

At a glance

  • Reads a duct plan in about 12 seconds: every run, size, fitting and air device, measured at the drawing’s own scale
  • Checks every size label two ways, against the drawn duct width and with a second AI reading, before it calls anything sure
  • Asks only what it could not settle, one question at a time, with the lines in question lit on the drawing
  • Fills the estimator’s own workbook, with live formulas, and exports marks that open in Bluebeam

0:00

Rian Blue reading one sheet of a real bid set, from upload to finished takeoff.

The problem

Before a sheet-metal contractor can bid on a building’s ductwork, an estimator has to measure all of it. That means opening each mechanical plan in Bluebeam, tracing every duct run by hand, reading its size off a label, counting every elbow, take-off and register, and typing the totals into a spreadsheet that turns feet of duct into pounds of steel. A single bid set can take days, and a contractor bids on far more jobs than it wins.

The cost of a mistake is not abstract. A misread size or a run counted twice moves the weight, and the weight is the price. One question in the demo, whether 70 lightly drawn runs are existing duct that stays, decides about $170,000 of the bid on its own.

Why it's hard

A mechanical drawing is not a diagram of ducts. It is lines: walls, grid, ceilings, piping, text and duct all drawn in the same strokes, often with labels drawn as lines too, so there is no text to read. New duct is drawn heavy and existing duct light. Scale notes are sometimes wrong, enlarged plans carry their own scale, and the same duct can appear on two sheets.

A tool that guesses is worse than none, because the estimator then has to check everything it did. So the problem is not only reading the drawing. It is knowing which of its own readings it can stand behind, and saying plainly which ones it cannot.

What we built

Rian Blue reads each sheet in stages, and shows every stage live as it happens, so the estimator watches the reading rather than waiting on it:

Vector extraction
Takes every straight line out of the PDF with its layer, weight, colour and dash. On the demo sheet, 113,065 segments in under a second.
Size labels
Reads duct sizes from the PDF’s text, or from the image when the labels are drawn as lines, and tells air-device tags apart from duct sizes.
Scale calibration
Checks the scale note against the drawn width of every labelled duct, and keeps a separate scale for each enlarged plan.
Duct wall pairing
Learns the duct line style from the walls around labels, then pairs parallel walls into runs and drops grid lines, symbols and joints.
Fittings and devices
Finds elbows, tees, transitions and take-offs where runs meet, risers where a box carries an X, and every register and grille.
AI cross-check
Sends any label read from the image to a vision-language model for a second, independent reading. Two readings that agree are sure; a disagreement becomes a question.

What comes out is not a report. Every duct the tool found becomes a line on the estimator’s own Bluebeam-style tool, shaded to the width of its size so a wrong size shows as a band that does not fit the walls. Everything stays editable, and a line the estimator changes is theirs: no later answer or re-reading overwrites it.

What it can do

On the demo sheet, the whole reading took about 12 seconds. From 1,761 duct-style lines it paired 993 walls into 97 runs, read 116 size labels, confirmed the drawing’s 1/8" scale against 44 measured duct widths, and found the fittings and 14 air devices. The AI cross-check agreed with three of three labels it was sent.

Review then asked two questions instead of asking the estimator to check 97 runs. Each comes with the lines it is about lit on the drawing, a suggested answer, and how much of the bid depends on it, so the expensive questions are the ones answered with care. One key gives the suggested answer, one skips, one goes back.

The finished takeoff fills the estimator’s own workbook: one tab per duct type, one row per size, every run in its own cell, with their formulas for perimeter, lining, waste and pounds per square foot left live. The drawings export as a PDF whose marks are ordinary markups that open in Bluebeam.

Limits

Single-line duct drawings, oval duct and duct shown only in sections are not measured yet. On scanned drawings, lengths are a few percent less exact than on a clean PDF and fittings are not counted. Duct that appears on both an overall plan and an enlarged plan is not merged, and the weights come from a standard gauge table rather than each contractor’s own until they type theirs in. The tool says each of these plainly where it applies.

More reading

Case study

How a franchise network let buyers search 100,000 products with a photo

Buyers on a promotional-products franchise network knew what they wanted but not what it was called, and keyword search across more than 100,000 products could not help them. An AI search now finds products from a photo, a phrase, or both, on the head-office site and every franchise storefront.