We keep meeting teams who want their Revit or IFC models to feel light and interactive on the web or in headsets, but the toolbox is noisy. Below is a brief, neutral survey of what’s out there and where each option shines (and slips). Our goal here is educational; we’ll end with a small field note from a niche client where we measured the impact of a modern pipeline.
On phones and standalone headsets, bottlenecks aren’t just triangles. GLB size, texture resolution, material count, and draw calls all compete for the same budgets.
Two quick rules of thumb we use when scoping:
Those are starting points, not laws. The tools below help you approach these targets in different ways.
These run inside Revit and produce glTF/GLB directly. We grouped a few representative options; features and pricing change often, so consider this a snapshot for comparing directions, not an endorsement.
| Tool | License/Cost | Compression & LOD | Notes |
|---|---|---|---|
| DiRoots “glTF Exporter” | Commercial, trial available | Draco compression; export Active View/Selection; category filters | Solid for web/VR handoff; straightforward UI; good when you want controlled scope (by view or category). |
| SimLab GLTF Exporter | Commercial, trial available | GLB/gltf output; strong materials handling; compression options vary by version | Often praised for preserving materials; we’ve had to post-compress with meshopt/Draco when sizes were high. |
| EverseDevelopment Revit glTF Exporter (open source) | Open source (MIT) | Basic geometry export; community-driven | Useful for simple viewers or as a baseline you can modify; expect to add your own compression/metadata steps. |
| Twinup / Community Revit2gltf (open source) | Open source | Basic export; hookable in custom workflows | Handy if you need to embed export logic into a bespoke toolchain; less turnkey than commercial plugins. |
| Leia glTF Exporter / Visionworkplace GLTF Converter | Commercial | Feature sets vary; often GLB export with material support | Worth testing on your models; look for transparency sorting and instancing behavior. |
When these are a good fit: You want a one-button export from a curated 3D View, you’re OK with Revit’s tessellation as-is, and you don’t need deep restructuring of the scene graph. They excel at design reviews and quick web demos.
Where we still wrestle:
If you can step outside Revit, more optimization knobs appear.
| Path | Strengths | Limitations |
|---|---|---|
| IfcOpenShell (IfcConvert) → GLB | Robust IFC geometry conversion; headless CLI; easy to automate | IFC fidelity varies; category mapping and materials need tuning; may require post-decimation. |
| FME (Revit/IFC → glTF writer) | Industrial ETL; can weld metadata, remap categories, split by floors/zones | License cost; you still want a web-savvy post-process for size and draw-calls. |
| CAD Exchanger (IFC/Revit* → glTF) | Clean glTF with assemblies and properties; supports both glTF and GLB | Commercial; pipeline design still needed for LOD and streaming. |
| Connectors (e.g., Revit → Speckle → Blender/Three) | Flexible: stream geometry, edit in Blender, export GLB with custom baking | More moving parts; requires scripting to keep sizes small and properties consistent. |
*Revit support may be via dedicated reader or IFC/other intermediates, depending on the product variant.
When these are a good fit: You want automation on a build server, structured metadata, or you need to split a campus-scale model into streamed tiles. They’re less “one click,” more “pipeline thinking.”
Typical snags we note:
A small heritage center asked us to deploy a “walkable” model of a retrofit with layered MEP — classic heavy BIM. The Revit file had ~11 million triangles in a full 3D view, 260+ materials, and lots of glass. We trialed three paths:
1. Revit plug-in with Draco on
2. IFC → IfcOpenShell → GLB, then meshopt + KTX2
3. Connector route (Revit → data hub → Blender → GLB)
For their public web viewer we shipped path 2 with a fallback “low” mode: all MEP hidden beyond 10 m and stair handrails simplified. For kiosk VR we used path 3 — nicer materials and stricter LODs outweighed the extra bake time.
Generic exporters can’t know your interaction model. Two small examples where bespoke code outperformed defaults for us:
score = w1*edge_length + w2*boundary_flag + w3*category_weight. Edges with low score are first candidates for collapse. This kept egress routes crisp while letting big slabs drop triangles aggressively.These aren’t fancy — just the kind of “from scratch” glue that fits the building and the audience. We’ve also learned where to stop: we once tried to auto-bake every Revit material into full PBR sets; we lost days for only marginal gains. Now we auto-bake a small material library (glass, metals, concrete, wood) and let anything unrecognized fall back to flat colors.
| Situation | What we’d start with | Why |
|---|---|---|
| Design review for stakeholders next week | Revit plug-in with GLB, Draco on | Fastest end-to-end; minimal setup. |
| Public web walkthrough on phones | IFC → IfcOpenShell → meshopt + KTX2; chunk by floor/zone | Better streaming and control over LOD/draw calls. |
| High-touch VR kiosk in a gallery | Connector → DCC (Blender) → GLB with baked materials + LODs | Artist control beats raw export for perceived quality. |
| Data-rich dashboards | ETL (FME/CAD hub) → GLB + sidecar JSON | Strong property mapping and repeatable automation. |
If you’re evaluating options, we’d start by exporting a single floor twice — once via a plug-in and once via a pipeline — and measure three numbers side by side: GLB size (MB), draw calls (count in viewer), and median FPS on a mid-range laptop. That mini-bake-off tells you more, faster, than a month of feature lists. And if something odd shows up — say, a stair handrail with 200k triangles — well, that’s where we like to roll up sleeves.