Workjigs
Language: English
Tools / Architecture and construction

IFC quantity takeoff to bill of quantities

A BIM model already knows how much concrete is in each wall. This tool reads those numbers from the IFC file, groups them the way an estimator does and turns them into a priced bill you can open in Excel.

What the tool does

You open an IFC file exported from Revit, Archicad, Tekla, Vectorworks, BricsCAD or any other BIM program. The tool lists every building element (walls, slabs, columns, beams, doors, windows, stairs, roofs and so on), reads its material, storey and quantities, and adds them up. You then choose a unit for each line, type a unit price and download the result as an XLSX bill of quantities.

The file is read by a WebAssembly build of the open-source web-ifc library inside your browser. It is not sent to a server, so confidential project models can be checked here.

Where it fits in a project

Quantity takeoff sits between design and cost. Once the design model is coordinated, an estimator measures how much of each material the building needs, multiplies by unit rates and produces a cost estimate. Doing this by hand from 2D drawings takes days. Desktop takeoff software that reads models costs thousands of dollars a year per seat. This tool covers the first pass: a quick bill from the model that you can compare with your own measurement, check a design option against a budget, or hand to a contractor as a starting point.

How each quantity is chosen

IFC defines standard quantity sets called base quantities, for example Qto_WallBaseQuantities and Qto_SlabBaseQuantities. Most BIM programs can write them when exporting. The tool uses them first, because they follow the authoring program's own rules for joins and openings. When an element has no quantity set, the tool measures its geometry instead and marks the line as such.

UnitFirst choiceIf missing
m³NetVolume, then GrossVolumeVolume of the element's closed mesh
m²Walls: NetSideArea, then GrossSideArea. Doors and windows: Area. Slabs, roofs, coverings: NetArea, then GrossAreaLeft empty (surface area of a mesh is not a measured area)
mLengthLeft empty
eaOne per element

Quantities in the file are stored in the project's own units. The tool reads the unit definitions in the file (for example millimetres for length, square metres for area) and converts every value to metres, square metres and cubic metres before adding anything up.

How the geometry fallback works

web-ifc turns each element into a triangle mesh in metres. For a closed mesh, the enclosed volume follows from the divergence theorem: each triangle with corners a, b, c forms a tetrahedron with the origin, and the signed volumes add up to the volume of the solid.

V = | Σ a · (b × c) / 6 |

Openings cut by doors and windows are already subtracted in the mesh, so the result is a net volume. The method needs closed, non-overlapping solids. Elements modelled as open surfaces or as several overlapping bodies give wrong volumes, which is why such lines are marked "Geometry" so you can check them.

Worked example

The sample model on this page is a small one-storey office we built for testing: four 200 mm concrete walls around a 10 m by 6 m plan, 3 m high, one 190 mm block partition, a 200 mm floor slab, four 400 by 400 mm columns, two 5 m steel beams, one door and two windows. Lengths are stored in millimetres.

LineQuantityWhere it came from
Wall, Concrete C25/3019.200 m³ (4 walls)Qto NetVolume: 6.12 + 3.48 + 6.12 + 3.48
Wall, Masonry block 19017.400 m²Qto NetSideArea: 5.8 m × 3.0 m
Slab, Concrete C25/3012.648 m³Qto NetVolume: 10.2 × 6.2 × 0.2
Column, Concrete C30/371.920 m³ (4 columns)Geometry: 0.4 × 0.4 × 3.0 = 0.48 each
Beam, Steel S27510.000 m (2 beams)Qto Length 5000 mm each, converted to metres
Door / Window1 ea / 2 eaCount

The column volumes are not in the file; they were measured from the geometry and match an independent measurement made with IfcOpenShell to three decimal places. If you enter a unit price of 120 per m³ for the slab, its line amount is 12.648 × 120 = 1,517.76. That price is only an illustration, not a market rate.

Before you rely on the numbers

This tool is for preliminary checks and learning. Bills used for tenders, contracts or payments must be prepared or verified by a qualified quantity surveyor or estimator.

Files you get

Sources

Last checked 2026-10-19