Three.js geometry to IFC


Hi folks,

is it possible to use Speckle in a way to to convert Three.js objects to IFC?
Lee’s say in a web app where I am having Three.js geometries that represent slabs, walls and I want to make an IFC file that contains those as IFC elements.



Speckle uses the IFC.js parsing logic to get IFC models in Speckle and viewable in our three.js viewer. We do not yet support going the other way around… Maybe the IFC.js folks could help here?

1 Like

@teocomi Thanks for your answer!

The IFc.js guys have started sth (will be moved to components) and hope to finish this by the end of the year

Since I want to use IFC just to get to Revit and/or ArchiCAD, I have a naive question (I have only used Speckle to stream geometry and data and never done anything more complex): Wouldn’t it be possible to skip IFC and use Speckle to convert my custom objects to Speckle objects and then use that to go to Revit/ArchiCAD, etc.?

And another question: Could it be possible to integrate that into a web app without the need for the user to run their own Speckle server (so send data to our Speckle server, convert it there, and send it back to the user)?

1 Like

You can definitively adopt the approach we’re using for Mapper. In brief:

In mapper, we allow users to bless certain elements as revit (soon archicad and more) objects. E.g., an extrusion in Rhino can be assigned to be a wall, and then, when received in Revit, it will become a wall.

You can definitively do the same from “threejs” - the exact implementation depends on how your app allows for modelling; it’s a simple matter of attaching to your object a custom property with a specific pattern - we can help here. You can then send that to your own speckle server, or to ours - whatever is easiest - and then the end user can receive that model in revit via our connectors.


Thanks, that sounds like a good approach!

We will discuss that in the team.
And thanks for the offer to help with the pattern logic!
That would be really great. I will let you know then.