2D drawings compress what we’re building into a format that’s easy to share. Not what’s easy to understand.
3D models are hard to share, but easy to understand.
Having done a few commercial construction projects, I can’t believe people used to build without BIM. It’s so simple to understand what we’re building and how everything fits together.
I’ve been experimenting with how we can use AI to bring our construction drawings to life. Without the headaches and costs of using BIM.
Contour lines don't mean anything until you interpret them.
You get a civil grading plan. It's covered in these thin lines with numbers next to them — 1250.5, 1251, 1252. Technically, that's all the information you need. In practice, almost nobody can look at a page of contour lines and intuitively picture the site.
So how do you make this useful?
Step 1 — Work out your existing and finished surface levels
Every contour line is an elevation. Your job is to establish two things for each area of the site:
- ESL (existing surface level) — take the average between two adjacent contour lines.
- FSL (finished surface level) — the underside of the slab, once you've accounted for slab depth and any ground improvement layer below it.
The difference between the two, for each area, tells you whether you're cutting or filling there.
Step 2 — Measure area at each contour range, then calculate volume
Do an area take-off for each band between contour lines, tagging it with its ESL. Multiply that area by the difference between ESL and FSL, and you've got your volume for that band.
One thing I got wrong doing this on camera: I took the existing surface level off the whole site footprint, when I should have only measured the actual excavation area.
Step 3 — Track cut and fill separately, never net them off
Total cut and total fill are two different jobs with two different productivity rates and two different costs. Cutting 450m³ here and filling 50m³ there isn't "400m³ of net movement" — it's 450m³ you have to excavate and dispose of, and 50m³ you have to source and import. Netting them off hides the real cost.
Step 4 — Apply bank and swell factors before you price it
Material in the ground is compacted (bank). Dig it out and it decompacts (loose) — that's your swell factor, and it's what determines how many truckloads you actually need. Compact it back in on the fill side and it changes volume again. Swell factors vary by material — clay and rock behave very differently — so look up the factor for what you're actually excavating, not a generic number.
Step 5 — Export the take-off data instead of throwing it away
You're doing this take-off anyway for the estimate. In ZZTakeoff, there's a one-click "export data to file" feature that dumps your whole take-off as JSON — every area, every elevation, every tag. Feed that JSON plus the raw PDF into Claude and ask it to build a 3D cut-and-fill model. You'll go back and forth a bit refining the view, but the model that comes out shows the existing ground, the design slab, and exactly where you're cutting versus filling — visually, in seconds, for anyone on the team.
Why the 3D model actually matters
A 3D model is dramatically easier to plan and communicate around than a 2D drawing. Everyone on the team can look at it and immediately understand the topography, discuss plant and methodology, and see the scale of the cut/fill problem — none of which is obvious from contour lines alone.
And the same pattern extends past earthworks: wall heights from a building take-off can build a 3D model of the structure; trenching depths across service trades can drive clash detection; a ceiling take-off can flag where cable tray needs to reroute around fire services that can't bend. In every case, the logic is the same — AI is bad at precise visual measurement, so you do the take-off yourself, and the tagged, precise data you already produced becomes the thing AI reasons over.
The Bottom Line
Do the cut/fill take-off properly — ESL and FSL per contour band, cut and fill tracked separately, bank and swell factors applied before you price it. Then export that same take-off data instead of leaving it stuck in the software. Feed it into AI alongside the drawing and you get a 3D model that turns an abstract set of contour lines into something everyone on the project can actually plan and communicate around.
You can also use this data to enhance your drawing database - a structured summary of your construction drawings that is easy for AI to read.