Skip to main content
DoneThat

AI Adoption GuideConstructionBid

Automated BOQ Takeoff from Drawings

Vision model extracts quantities from 2D drawings and populates BOQ line items automatically. (e.g., Togal.ai, PlanSwift AI)

Construction processBidAwardPlanMobilizeBuildInspectHandoverClose

By Don, DoneThat’s AI coach · updated

What a usable takeoff line actually is

A vision model has done its job when every BOQ line carries a quantity, a unit, a cite to a drawing sheet and revision, and a measurement the quantity surveyor can re-run. A number with no sheet is not a takeoff. A sheet with no measurable geometry is not a quantity.

Tools in this class (Togal.ai, PlanSwift, Autodesk takeoff products) read 2D PDFs or CAD exports and propose lengths, areas, and counts. The QS still signs the quantities. Until that signature exists, the takeoff is a draft, and a draft does not go into the bid.

Empty stays empty. If the sheet is blurred, cropped, or the scale bar cannot be read, the line stays blank. Inventing a length from a pixel guess is how a bid absorbs a wall that was never measured.

How the model should read a 2D sheet

Start with the issued-for-tender set, not last week's working copy. Confirm the revision on the title block matches the addendum register. Then let the model run.

The useful sequence is: identify the sheet, lock scale, classify the object, extract the measurement, write the cite.

Scale lock comes first. A 1:100 plan treated as 1:50 doubles every length. If the model cannot find a scale bar or a known grid dimension, stop. Do not proceed on a default scale.

Classification is where demolition and new work get mixed. A dashed wall, a hatch marked "EXISTING TO BE REMOVED", or a clouded revision can look like a new partition to a vision pass that only sees line weight. The QS has to treat demo, existing-to-remain, and new work as three different item codes, even when they sit on the same grid line.

The cite must name sheet number, revision, and what was measured (centreline length, internal face area, count of openings). "12.4 m of 100 mm stud wall, A-201 Rev C, grid 3, centreline" is a quantity. "12.4 m partitions" is a guess.

Past rates for the same wall type can be pulled through historical bid RAG retrieval. Retrieval does not replace the measurement.

If the PDF is a flattened scan, the model sees ink, not layers. Measuring a services overlay as architectural wall is a real miss. Tell the run which drawings are in contract.

Doors, windows, and openings need an explicit rule before the run: deduct from wall length, count as nr, or both. Write that rule on the takeoff header so two estimators do not apply different deductions to the same sheet.

One partition run on A-201

A mid-rise bid lands with architectural plans and a draft BOQ. On sheet A-201 Rev C, the model traces an internal partition along grid 3: 12.4 m of 100 mm metal-stud wall, two 900 mm door openings deducted, net 10.6 m of wall and 2 nr doors. The cite is A-201 Rev C, grid 3, centreline, scale 1:100 confirmed against an 8.4 m grid bay. That is one run, not a floor takeoff.

The QS opens A-101 (existing conditions) and A-201 together. Grid 3 on A-101 shows the same alignment hatched for demolition. The 12.4 m the model counted as new wall is the wall coming out. New work on A-201 is a parallel run on grid 3.1, 11.8 m, no doors. If the QS accepts the unsigned extract, the BOQ prices 12.4 m of new partition that is a demolition item, misses 11.8 m of actual new wall, and carries two doors that belong to the demo line.

A revision cloud on A-201 Rev C also moved a door 600 mm. The model used the unclouded geometry. The door count is still two, but the wall net length is wrong by the width of that shift. Hold the line empty until the sheet, revision, demo state, and measurement agree, then sign.

Checks the QS does not skip

Walk the extract in the order the BOQ will be priced, not in the order the model filled the table.

Sheet and revision come first. Reject any line whose cite is missing, points at a superseded sheet, or ignores a revision cloud that touches the measured object.

Scale and unit come next. Lengths in metres, areas in square metres, counts as nr. A mixed unit on one item is a stop.

Then new versus demo versus existing-to-remain. Open the demolition and existing-conditions sheets even when the model only ran on the new-work plans.

Then openings and deductions: doors, windows, and service risers that the model treated as solid wall, or deducted twice.

Then blur and crop. If you cannot read the note, the hatch, or the dimension string, the quantity is empty. Do not interpolate from a neighbouring bay.

Signature last. The takeoff is not the tender qty until a named QS has checked it. Do not paste unsigned model output into the priced BOQ.

When the drawings are BIM-derived, a 2D takeoff can still miss a clash that only appears in the model. Send that check to BIM design clash detection rather than forcing the vision pass to invent a 3D condition from a plan.

Rates and productivity come from your library and from an estimating benchmark update, not from the takeoff tool. The model measures. It does not price.

Failure modes that change the bid

Counting a demolished wall as new work is the classic miss. The geometry is real. The item code is wrong. The tender then underprices demolition and overprices new partitions, and the site team inherits a BOQ that does not match the demo drawings.

Missing a revision cloud is quieter. An addendum moved a grid, changed a wall type, or added a fire-rated length. The model ran on the previous revision. Your cite says Rev B. The issued set is Rev C. Every quantity on that sheet is suspect until re-run.

Using the unsigned takeoff as the tender quantity is a process failure, not a vision failure. The extract can be tidy, fully cited, and still wrong on demo, scale, or openings. Submitting it unsigned means nobody owned the check. If the bid is later reviewed under adversarial bid review, that gap is visible immediately: quantities without a checker, sheets without a revision, lines that should have stayed empty.

Blurry or incomplete sheets produce a fourth failure if you let them. A scanned mark-up with no readable scale is not a measurement source. Leave the BOQ line blank and raise a tender query. Filling it from "about that long on screen" is inventing a quantity.

A fifth miss is measuring the wrong representation of the same wall. If the BOQ item is m2 of wall face, a plan centreline in metres is the wrong unit until height is applied from a cited elevation or a stated storey height. If storey height is not on the sheet, do not assume it.

Hand-off after the QS signs

Once the QS has signed, the BOQ lines are quantities with cites. Pricing, qualifications, and risk sit downstream.

Pass cited quantities into rate build-up. Keep the sheet reference on the priced item so a later query can be answered without re-tracing. If historical rates are pulled, they attach to the signed quantity, not to the draft extract. If another estimator challenges the bid, they challenge a signed measurement, not a model dump.

Do not loop the unsigned file into the tender submission, the letter of offer, or the handover pack. The signed takeoff is the record. Everything before that is working paper.

Vision takeoff from 2D drawings is a measurement assistant. Togal.ai, PlanSwift, and Autodesk products in this class accelerate tracing. They do not replace the QS. A quantity with a sheet cite and a re-runnable measurement, checked and signed, is the only takeoff that belongs on the bid.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first