Back to the BIM & IFC blog
Tools & comparisons · 2026-10-01 · 9 min
How to Embed an IFC Viewer in a Website, CDE or Power BI Report
An interactive 3D model in a proposal, a project page, a CDE panel or a Power BI dashboard — with one iframe, no build step, and without uploading the model to anybody's server. What the URL parameters do, and when you need the SDK instead.
How to Embed an IFC Viewer in a Website, CDE or Power BI Report — IFC Viewer Online article cover
Screenshots of a BIM model are a strange thing to put in a proposal. The whole point of the model is that it is three-dimensional and full of data, and the screenshot throws away both. An embedded viewer keeps them: the reader can orbit, section, click an element and read its properties, on any device, without installing anything.
Doing it takes one iframe. Doing it well takes knowing about four parameters and one browser security rule.
The minimum embed
<iframe
src="https://www.ifcvieweronline.eu/?model=https://your-host.com/model.ifc&embed=1"
width="100%" height="600"
style="border:0;border-radius:12px;max-width:100%"
loading="lazy" allow="fullscreen"
title="3D IFC model">
</iframe>
The visitor's browser downloads the IFC directly from your host and parses it locally. The model is never uploaded to us, which is usually the first question from anyone who has signed an NDA — and a genuine difference from embeds that require you to upload the model to a vendor's cloud first.
Build your embed
Paste a public IFC URL, pick a preset, and copy the iframe. The preview updates live.
Open IFC Viewer
The parameters worth knowing
| Parameter | Does | Use it for |
|---|
| model | Loads one or more IFC URLs (comma-separated for a federated set) | Everything |
| ui | Chrome preset: minimal, full, kiosk or client | Matching the audience |
| validate | Runs validation on load and shows the Health Score | Showing quality, not just geometry |
| isolate / select | Opens with one IFC class isolated, or one element selected | Pointing at the thing you are writing about |
| accent | Tints the viewer to a hex colour | Dashboards and branded pages |
| lang | Forces the interface language | Localised sites |
| map | Places the model on the basemap from its georeferencing | Site context in proposals |
The full reference, including solar studies and point clouds, is in the embed documentation.
The ui preset matters most. minimal is right for blog posts and documentation. kiosk strips everything for screens in a lobby or a sales suite. client is designed for sending to a building owner: a clean view and a quality badge, without the tools a coordinator needs and a client does not.
Where it works
- Websites and blogs — any CMS that accepts HTML: WordPress, Webflow, Ghost, a static site.
- Power BI — a web content or HTML viewer visual, with accent set to the report theme. A model next to the cost and programme charts it explains.
- Notion, Confluence, SharePoint — paste the URL as an embed block.
- CDE panels and internal tools — an iframe, with lifecycle events posted to the parent window so the host can react when the model is ready or validated.
- Proposals and tenders — as a link if the format does not allow embeds. A live model link in a tender response is still rare enough to be noticed.
Why it does not load: CORS, and two other causes
The model travels from your storage to the visitor's browser. Without a CORS header on the host, the browser refuses to hand it over.
- Sharing links that return a web page, not the file. Dropbox, OneDrive and Google Drive share links usually open a preview page; you need the direct-download form of the link.
- Links that require login. The visitor's browser has no session on your CDE, so a private link returns a sign-in page.
- Very large files on slow hosts. The model is downloaded in full before parsing; host big federated sets somewhere fast, and consider splitting them.
If the models are too large to embed comfortably, how to reduce IFC file size covers the safe reductions.
When an iframe is not enough: the SDK
An iframe shows a model. As soon as your page needs to talk to it — highlight an element when a row in your table is clicked, read the Health Score into your dashboard, run an IDS specification and list the failures in your own UI, trigger a guided tour — you want the SDK. It wraps the same viewer with a typed, two-way API, available as a script or as an <ifc-viewer> web component.
If instead you want to build your own viewer from the underlying libraries, viewing IFC on the web with three.js and Fragments covers what that involves — and why most teams that start there end up embedding.
For confidential projects, the same client-side architecture that makes embeds work is what keeps the model off third-party servers; the details are in IFC viewers for confidential and NDA projects.
How to Embed an IFC Viewer in a Website, CDE or Power BI Report