Excel to IFC — push spreadsheet values back into your model
Update IFC model properties by importing values from an edited Excel spreadsheet.
Update an IFC model from a spreadsheet. Export the elements you care about to Excel, let whoever owns the data fill in the columns, then upload the edited workbook here and the values are written back into the model — matched element by element on GlobalId.
This closes the loop that makes IFC data actually maintainable. The people who hold the information you need — the PM with the room numbers, the QS with the cost codes, the FM team with the asset tags — work in Excel, not in a BIM authoring tool. Asking them to learn one is not a plan. Round-tripping through a spreadsheet is, and it takes two runs: Extract IFC Data out, Excel to IFC back.
When to reach for it: After editing property values in Excel (room numbers, fire ratings, cost codes) and needing to push those changes back into the IFC model.
What you get: An IFC file updated with property values from the Excel spreadsheet.
Example: A PM fills in room numbers in Excel; inject them back into the model.
How the workbook maps onto the model
The structure is deliberately simple enough to build by hand if you need to. Each worksheet is one property set, and the sheet's NAME is the property set's name. Row 1 is the header; each remaining row is one element.
- A GlobalId column is required — it's how each row finds its element. Matching is case-insensitive, so a GUID that passed through Excel, openpyxl or a download/upload round trip still resolves.
- GlobalId, Name, Type and Storey are read-only context columns. They're there so you can tell which element a row is; editing them changes nothing.
- Every other column is a property name, and its cell is the value to write.
- A worksheet called "Summary" is skipped, so the summary sheet that Extract IFC Data emits doesn't get interpreted as a property set.
Values keep their type — and gaps get filled
When a property already exists on an element, the import updates it in place and keeps the original value's concrete IFC type. That is not cosmetic: an earlier version rewrote every updated value as IfcText, which broke downstream consumers matching on IfcLabel, IfcReal or IfcBoolean — the edit landed, and the data stopped working. When there is no original to pattern-match against, the value is written as text.
When a property does NOT exist yet, it is created on the element's existing property set; when the property set itself doesn't exist, that is created too. So the same workbook both corrects existing data and adds data the export never had, and you don't have to pre-create anything. Empty cells are left alone rather than blanking the model's value, which means you can send a sheet out, get half of it back filled in, and import it without destroying the rest.
It tells you what did not land
The run reports rows it could not use, split by reason: rows with an empty GlobalId, and rows whose GlobalId is not in the model. That second count is the one that saves an afternoon — if you pruned or re-exported the IFC between the export and the import, the GUIDs moved, and "imported 40 of 50 rows, 10 reference GUIDs no longer in the model" points straight at the cause. The skip used to be silent, and people reasonably concluded the tool had lost their edits.
How to import Excel data into an IFC file
- Upload your IFC file
- Upload the edited Excel spreadsheet
- Click Run to import the values
- Download the updated IFC file
Under the hood
BIMCamel parses IFC files in the browser using the open-source web-ifc engine and renders models with @thatopen/components + three.js. Heavy operations (clean / optimise / validate / convert) run on disposable server-side workers using the same web-ifc stack plus our own .NET pipeline; results stream back to your browser as soon as they're ready. Uploads sit on our servers only as long as your tier's retention window allows and are never used to train AI.
Frequently asked questions
How do I get a spreadsheet in the right format?
Run Extract IFC Data (IFC → Excel) on the model first. Its output is already in the shape this tool reads — one sheet per property set, a GlobalId column, and the context columns. Edit the values, then upload the same workbook here.
How are spreadsheet rows matched to model elements?
By GlobalId, the IFC element's own persistent identifier, compared case-insensitively. Nothing is matched by name or position, so re-ordering rows, adding columns or deleting rows you don't need is all safe.
Can I add a property that isn't in the model yet?
Yes. Add a column with the new property name and fill it in — the property is created on the element's property set, and the set itself is created if it doesn't exist. A new worksheet becomes a new property set of the same name.
Will empty cells erase the values already in the model?
No. Empty cells are skipped, so a partially-filled sheet only writes what it actually carries. That makes it safe to send a workbook out for someone else to complete and import whatever comes back.
Does importing change the property's data type?
Not for existing properties — the original concrete type (IfcLabel, IfcReal, IfcBoolean and so on) is preserved so downstream tools that match on type keep working. Newly-created properties, and updates where there is no original to read a type from, are written as text.
What if some rows don't import?
The run reports how many rows had no GlobalId and how many referenced a GlobalId that isn't in the model. The second usually means the IFC was re-exported or pruned after the spreadsheet was produced, so the GUIDs no longer match — re-export the sheet from the current model and redo the edits.
Which IFC versions are supported?
IFC2x3 and IFC4 — the two schema versions exported by essentially every AEC authoring application. IFC4x3, the infrastructure schema, works too: it opens in the viewer, and validation, health reports, property-set editing and georeferencing all run on it. Tools that need geometry processing, such as clash detection and 3D export, aren't verified on IFC4x3 yet.
What's the maximum IFC file size?
Up to 25 MB as a guest, 100 MB with a free account, 500 MB on Pro, and 1 GB on Team. The caps are on upload size only — every tool itself is available on every tier.
What happens to my file after processing?
Your file is uploaded over HTTPS and processed on our servers. Guest uploads are stream-only — the working files are deleted as soon as your download finishes. Free accounts keep results for 7 days; Pro and Team keep saved models until you delete them. Files are never shared with third parties or used to train AI.
Is Excel to IFC free?
Yes. Excel to IFC is free to use — guests get 3 runs a day with 25 MB uploads, and a free account raises that to 10 runs a day with 100 MB uploads. No trial clock, no watermarks.
Guides from the Learn library
- How to Edit IFC Properties in Excel and Import Them Back
- How to Bulk Modify IFC Files Without Opening BIM Authoring Software