Upload the IFC model and get the takeoff by type and by level
The quantities are already written in the file. The server reads all of it and adds them up; 3D is the other tab.
Matterial’s BIM module reads an IFC model — the one Revit, ArchiCAD, Tekla or any other tool exports — and returns a quantity table by element type and by level: how many pieces, how many square metres, how many cubic metres and how many linear metres. The file is read by the server, in streaming and up to 400 MB, not by the browser. Each group in the table is linked to the budget line item it belongs to, with a unit guard that stops a group measured in m² from feeding a line item priced per linear metre. And it uses no AI credits: the quantities are already in the file — this just reads them and adds them up.
| Material | Unit | Quantity |
|---|---|---|
| Concrete f'c=250 | m³ | 148.5 |
| Rebar | ton | 12.4 |
| Standard formwork | m² | 620 |
| Block wall | m² | 385 |
| Concrete slab-on-grade | m² | 210 |
What problem it solves
The model exists, but whoever prices the job does not use it. Quantities get measured again on the drawings, or they arrive in a spreadsheet that came out of a schedule nobody outside the modeller knows how to reproduce. When someone does try to open the IFC in a browser viewer, a 300 MB model runs out of memory halfway through and draws an incomplete building without telling anyone. And the file carries two silent traps on top of that: if the exporter wrote millimetres, areas come out in mm²; and if you add up every area a wall carries, that same wall gets counted three times.
How it works
Upload the .ifc
From Revit, ArchiCAD, Tekla or any software that exports IFC. Up to 400 MB. It lives in the project, next to the drawing sheets.
The server reads it
The file is consumed in chunks, never held whole in memory. Out comes a table by type and by level with count, m², m³ and linear metres.
Check the notices
If the model came in millimetres, it is already converted and you are told so. If it declares no levels or no units, you are told that too.
Link each group to its line item
You pick which quantity feeds it — area, volume, length or count — and only line items priced in that unit show up.
What's included
- .ifc models from Revit, ArchiCAD, Tekla or any IFC exporter, up to 400 MB
- Read by the server in streaming: the browser never loads the file to count
- A table by type and by level: count, m², m³ and linear metres
- Types shown in site language — wall, slab, beam, footing — not IfcWallStandardCase
- Linked to budget line items through a unit guard: m² cannot feed a line item priced per linear metre
- Detects and converts models in millimetres, centimetres, feet or inches, and says so
- Warns when the model declares no levels or no units
- Filters by level, by type and by text, with the total of what is filtered
- Exports the table to Excel, with the line item each group feeds
- "3D model" tab: orbit the building, isolate a level and tap an element to see what it is and which floor it is on
- Several models per project — one per discipline — each with its own table
- No AI credits used
How the BIM module works, under the hood
The question is not whether there is 3D: it is where the number comes from
Showing the model in a browser is something half the market offers, and that is fine: orbiting a building helps you understand where things are. The problem starts when the square metres you are going to charge for come out of that same viewer. To draw an IFC you have to download the whole thing to the device and triangulate its geometry, and a 300 MB model can exhaust the tab’s memory halfway through. When that happens the viewer does not always crash: sometimes it draws as much as it managed and sits there quietly. The result is an incomplete building that looks perfectly normal.
In Matterial the quantities do not come from there. The file is uploaded and read by the SERVER, in chunks, never holding the whole model in memory: it consumes the text as it arrives and keeps only what it needs to count and add up. From a wall it cares that it is a wall, of what type, on what level, and its square and cubic metres. No geometry, no meshes. That is why file size does not change the result: a 400 MB model gives the same complete table as a 5 MB one.
Hence two tabs and not a split screen. "Quantities" is the one you work with and it runs on the server; "3D model" is the one you look at and it runs in the browser. An incomplete model to look at is just an incomplete model; an incomplete model to price is a job quoted wrong. Two different uses, two different standards, kept apart on purpose.
- The quantities are produced by the server, reading the whole file
- Read in streaming: the model is never loaded whole into memory
- File size does not change the resulting table
- The 3D viewer is another tab, with another job: understand, not charge
The two IFC traps, already handled
The first one is UNITS. An IFC does not store metres: it stores numbers in the units the project declared. An exporter set to millimetres writes areas in mm², so a 12 m² wall comes out as 12,000,000. That number does not look odd inside a long table, and multiplied by a unit price it gives a budget a million times more expensive without a single visible error. The reader resolves the file’s units before adding anything up, converts everything to metres, and tells you in the header what the model came in — millimetres, centimetres, feet, inches — so you can answer where a figure came from when someone asks.
The second one is WHICH AREA. A wall does not carry "the area": it carries NetSideArea, GrossSideArea, GrossFootprintArea and sometimes more. They are all areas, they are all legitimate, and none of them is the same. Adding them counts the same wall three times. Here ONE is picked per element and it is always picked the same way, net ahead of gross: gross ignores the openings, and a wall with three windows does not get plastered or painted in full. The same rule applies to volume — net before gross — and to length, where only the quantity named Length is taken: height and width are lengths too, and adding those across elements means nothing.
There is a third detail you notice a lot in a Revit model: openings. Every door or window void is exported as an element with its own volume. Adding those up means pricing the air in the windows, so they stay out — as do types and styles, since IFCWALLTYPE describes a kind of wall, not a wall built on site. Everything else does come in, MEP included: pipes, fittings, terminals, light fixtures. The reader does not work from a whitelist of known types, so whatever the modeller invented shows up in the table too.
- Project units resolved and converted to metres, with the notice in plain sight
- One area per element, always the same one: net before gross
- Net volume before gross; only Length is taken for length
- Door and window openings are not counted; neither are types and styles
From a model group to a budget line item
The table groups by IFC type, family and level: "Wall · Basic Wall: Muro 15 · Level 2", with its count, its m², its m³ and its metres. Types are shown in site language — wall, slab, beam, footing, rebar — not with the raw schema name, because whoever reads this table prices the job, they do not model it. And since a large model yields hundreds of groups, there is a search box and filters by level and by type, with the total of whatever is left after filtering at the foot.
Each group is linked to a budget line item in two steps, in that order on purpose. First you pick WHICH quantity feeds it: area, volume, length or count, and only the ones that group actually carries are offered. Then you pick WHERE it goes, and that is where the guard comes in: the list of line items is filtered to those priced in that unit. A group in m² cannot feed a line item priced per linear metre. It is exactly the same guard the on-drawing measurements use, so both sources behave alike.
The guard also tells apart two "no"s that look similar and mean very different things. If the project has no budget yet, it says so: create the line items and come back. If it does have a budget but no line item is priced in that unit, it says that instead, which sends you to review the units in your catalogue rather than to build the budget. And if you change the quantity of a group that was already linked — from area to volume, say — the previous line item is released instead of staying attached to a unit that no longer fits.
- Grouped by type, family and level, with search and filters
- First the quantity (area, volume, length, count), then the line item
- The unit guard is the same one used by on-drawing measurements
- Changing the quantity releases a line item that stopped fitting
3D is for understanding, and it downloads when you ask for it
The "3D model" tab opens the building: you orbit it, zoom in, isolate a level to see just that floor, and tap an element to be told what it is and which floor it sits on. It answers the questions a table cannot — where is that wall, has level 3 been modelled yet, what is that piece nobody can place — and it shows the project in a meeting without opening the modelling software.
The load does not start on its own. Orbiting a building means having its vertices, and that means downloading the whole file to the device: that is data plan megabytes for someone standing on a site. So there is a button that tells you the file size before anything downloads, and if the model is one of the big ones it warns you that on a phone it may be slow or run out of memory while on a computer it will be fine. The viewer itself — the 3D library and the geometry reader — is also downloaded only if you open that tab; whoever never opens it never pays that weight.
And if the model carries no shapes, it says so. An IFC exported with properties only cannot be drawn, but its quantities are still perfectly valid: the other tab still has its table. It is the same idea again: a drawing that fails cannot cast doubt on the number, because the number never came from the drawing.
- Orbit the building, isolate a level, tap an element and know what and where it is
- The download is triggered by the user, with the file size in plain sight
- Warns when the model is heavy for a phone
- No geometry means no 3D, but the quantities are still valid
Reading a file is not artificial intelligence, and it is not priced like it
This module uses no AI credits. It is not a promotion or an entry plan: there simply is no AI here. The quantities are already written in the IFC — the modeller produced them when they modelled — and what Matterial does is read them, resolve the units, pick the right quantity to keep, and add up. That is arithmetic. Charging for arithmetic would be charging for something that does not cost what you would be charging.
The practical consequence matters more than it sounds: you can upload the model every time the architect sends a new version, without thinking about the cost. And that is exactly how to use it well, because a model moves throughout a project. If reading it had a price, you would read it once at the start and then work off an old snapshot.
It follows the same line as the rest of the product: AI goes where it genuinely helps and where a mistake is tolerable — drafting a finding from a photo, tidying up a dictated site log — and stays out of the data you charge for. A number that ends up in a budget is produced deterministically, with rules you can explain and tests that protect them. If two people upload the same file, they get the same table.
- Zero credits to read a model, with no cap on versions
- The quantities were already in the file: here they are read and added up
- Deterministic maths: the same file always gives the same table
- AI stays out of the numbers you charge for
A browser viewer vs. the model read on the server
The same IFC, with two ways of getting the quantities out of it.
| Browser viewer / Revit schedule to Excel | With Matterial’s BIM module | |
|---|---|---|
| Who reads the file | The browser tab, or the modeller’s software | The server, in chunks, up to 400 MB |
| A 300 MB model | The tab can run out of memory halfway through | Read in full; size does not change the result |
| If the load falls short | It draws an incomplete building and nobody notices | Not applicable: the table comes from the whole file |
| Model exported in millimetres | Areas come out in mm² and the error is invisible | Detected, converted to metres and flagged |
| Which area is taken from a wall | Whichever the schedule carries, or all three added | One per element, always the same, net before gross |
| Door and window openings | They come in with their volume unless removed by hand | Never counted |
| From model to budget | Copy and paste into a spreadsheet | Each group pointed at its line item, with a unit guard |
| Cost of reading the model | A licence, or the modeller’s time | No credits used |
Illustrative example: a building model exported in millimetres
A hypothetical model, to show what the reader returns and why units matter. The figures are not market data nor a guaranteed result.
Illustrative example with hypothetical figures. It is there to show the units trap: unconverted, those 742.60 m² would read as 742,600,000 mm², and multiplied by the line item price they would give a budget a million times more expensive with no visible error at all.
One scenario per role
Uploads the IFC the architect sent and that same afternoon has the m² of wall and the m³ of concrete by level, without measuring the drawings again. Links each group to its line item and exports the table to Excel, line item column included, to review it with the team.
Sees what the export actually delivered: what units the file came in, how many elements ended up with no level, and which types show up. The reader’s notices work as feedback to fix the model before anyone prices it.
Opens the 3D tab on the site computer, isolates the level they are working on and taps the element nobody can place to see what it is and which floor it is on, without installing the modelling software.
Can ask for the model to be re-read with every new version the architect sends, because reading it costs no credits. The budget stops working off an old snapshot of the project.
Who it's for
Works with the rest of Matterial
Coming from another tool?
Frequently asked questions
Which software can I upload the model from?
Any that exports IFC: Revit, ArchiCAD, Tekla and the rest. You upload the .ifc file, up to 400 MB. The reader does not depend on the schema version — it reads the file as it is and shows you in the header which schema it declares.
Does it use AI credits?
No. There is no AI here: the quantities are already written in the file, and what happens is that they get read, unit-converted and added up. That is why you can upload every new version of the model without thinking about the cost.
Why does the server read it and not the browser?
Because a real model weighs between 50 and 500 MB, and a browser tab can run out of memory halfway through and draw an incomplete building without warning. The server reads the whole file, in chunks, so the table always comes out complete. The browser only comes in on the 3D tab, which is for looking.
What if the model comes in millimetres?
It is detected as the file is read, everything is converted to metres, and a notice tells you what units it came in. You also get a notice if the file declares no units: metres are assumed, and it is worth checking a couple of quantities against the model before pricing.
A wall carries several areas in the IFC. Which one is used?
One only, and always the same one: net before gross. Gross ignores the openings, and a wall with three windows does not get plastered or painted in full. Adding NetSideArea, GrossSideArea and GrossFootprintArea would count the same wall three times.
Are door and window openings counted?
No. Revit exports every void as an element with its own volume; adding those up would mean pricing the air in the windows. They stay out, as do types and styles, which describe a family rather than a piece built on site.
What if the model does not say which level each element belongs to?
You get a notice. The model can still be quantified — the totals by type and family are still correct — but it cannot be split by floor. It is an export problem, and the notice is there so you can ask for it to be fixed.
Does the 3D tab give the same quantities?
No, and that is on purpose. The 3D runs in the browser and is there to understand the building: orbit it, isolate a level, tap an element. The numbers always come from the server. If a model carries no geometry and cannot be drawn, its quantities are still valid.
Can I upload more than one model per project?
Yes. On a large project the norm is one per discipline — architecture, structure, MEP — and you switch between them with a click. Each model has its own table and its own links to the budget.
Does it replace measuring on the drawings?
No: they coexist. When there is a model, the quantities come from the model; when there is only a PDF or a DWG, they get measured on the drawing. Both sources use the same unit guard to link to the budget, so they behave alike.
Get started today with Matterial
From blueprint to build, with clarity. Try it free, no card.