Our customer wants a Revit supported file format

We have built a custom 3D builder using Threejs. Our customer wants to export their objects from the scene in a file format which can directly be opened in Revit. Is this possible through Threejs and How?

Haven’t tried it myself, but this is worth a go: https://apps.autodesk.com/RVT/en/Detail/Index?id=531407844766561060&appLang=en&os=Win64

That’s a glTF exporter for Revit. I think they want an importer.

@manishw you can see all the exporters from the three.js repo here:

https://github.com/mrdoob/three.js/tree/dev/examples/js/exporters

I don’t think revit can import any of those formats directly. But if you find a list of the formats that revit can import, then maybe you can find a converter. My best bet would be to try STL → DWG

Oops, I should’ve read more carefully :sweat_smile:

Hi @looeee, You are right. The customer needs to import Revit supported files into Revit.
Our 3D builder is capable to generate and export files in .OBJ, STL, GLTF, JSON. We want to provide our customer a single step solution which is helpful to their designers to import the output files from our 3D builder into Revit software.

There is no existing tool (that I’m aware of) that will directly export from three.js to a Revit compatible format. You will either need to write your own, or use a two-step process as I described above.

Contributing my two cents.

Exporting to Revit can be more involved than exporting the geometry.
The rvt file format is closed and there’s very little you can do without having Revit.
Open Design Alliance has BimRv SDK to help with external Revit access.
IFC is an open standard for BIM information exchange which has seen increasing adoption. Revit supports importing IFC formatted files, but I have come across some issues with that sometimes. (Someone out there also has an IFCLoader for three.js).

If you decide to write an exporter for your format to IFC that would be pretty cool. The geometry is only a representation for Revit. You would need to export a bunch of metadata from your 3D application besides the geometry to make it “smart” enough for BIM/Revit.

Revit does import a bunch of 3D formats but that is only a workaround as the those elements are “dumb” in the Revit world and you can’t really do much with them even after they are in Revit.

1 Like

We have received a similar request. Did you find a solution or a workaround @manishw?

I’m super curious, what kind of data do you have in three.js in the first place? Revit as far as i know is BIM software, it’s much much more than just some triangles.

At the moment we don’t have anything in Three.js. We have data about the hardware product our software is used to configure. In our case it’s hardware for airports, and a client that consults in airport planning has asked to export the configurations with “attributes like length, height, power etc…, preferably in Revit format”.

I think the “preferably in Revit format” is going to be extremely involved. I think these are proprietary and closed. Don’t know how this actually works, since i think it’s possible to read say a dwg in something not from Autodesk, but i imagine it’s some kind of cracking / reverse engineering.

To output attributes though, should be very simple. Three’s objects already support userData = {}. You can stick anything you wan’t in there and serialize as JSON.

The website says they support these. I suggest you pick a file type and learn how it works. learning a new file type can be a lot… like a lot a lot… but if theyre willing to pay for it, then id do that. i know of people who have spent months writing code to work with some file type for 3D.

  • Revit native formats: RVT, RFA, RTE, RFT.
  • CAD formats: DGN, DWF, DWG, DXF, IFC, SAT, and SKP.
  • Image formats: BMP, PNG, JPG, JPEG, and TIF.
  • Other formats: ODBC, HTML, TXT, and gbXML.

@pailhead I think the main issue is what formats Revit can import, and serialized three.js objects in JSON is likely not on that list. Our reasoning right now is that we will use three.js to create the 3D model, then export this to a format Revit can import, as a dumb model. Later on an export to IFC would probably be optimal, but as you say @Kamjam21xx, this will likely take a long time and may not be worth the effort.

Thanks for your input.

What about these scripting languages? Can one write an importer for Revit?