I though it would be a good idea to create a post for collecting ideas/wishes/remarks regarding the Revit Datasmith Export Plugin.
First of: great job on the exporter plugin, really nice to see all this effort being put into creating a pipeline between Revit and Unreal Engine.
It is really nice to see that a lot of effort has been put into keeping the Revit object structure intact as much as possible (level assignment, layers, all that metadata, etc.)
What I really was hoping for before I installed the plugin was an automatic reduction of triangles/vertices on import. Right now when I import a model from Revit it will almost always be way too big for Unreal Engine to properly handle, The thing is that anything that is a cilinder shape in Revit will be imported into UE4 with an enormous amount of tesselation. Just a small piece of piping will be somewhere around 30.000 triangles. Most buildings have thousands of pipes, so that really adds up: it is not gonna work in UE4. Now the Proxy Geometry Tool is a great way to reduce this, but it will take hours (if not days) to reduce an entire model and even then the result might not be exactly what you want in terms of quality. It would be really great if somehow this could be handled in the Revit export process to udatasmith (if at all possible).
Before the export plugin I would pipe it through 3DSMax and reduce the number of triangles with the ProOptimizer and such. This made it somewhat manageable before importing into UE4.
Would love to hear your thoughts on the matter or maybe workarounds that other users have come up with.
The first implementation was a focus on translating the data and ship something that had some value without waiting to get the dream solution out. But your concerns are totally legitimate.
A few things you can do now:
reducing polygon count can be done in the engine and automated with python. No need to use 3D max for that so we believe we’re not putting an inferior solution than fbx and max. I’ll dig up an example when I can.
Our next phases of development are related to exactly what you’re saying:
dataprep with better ui than python to prepare models from all sources for VR (this is why the exporter don’t do that)
rethink tessellation from revit: we get revit’s mesh but sometimes it’s quality is poor. We believe we can override it for specific object type at export time. That would be a phase 2 of the implementation.
i tried it out last night with a small project with 13 houses. but all the houses are linked in a overal model.
when i exported it, everything exported except the linked models. can you look in to that?
Thanks for the reply Pierre-Felix, good to hear that reducing the polygon count already has your attention.
If you’d be willing to share an example on how to reduce polygons using the engine I’d really appreciate it, thanks!
Seconding on linked models ! All our projects have a main file with multiple linked models (different buildings, MEP, Structure, etc…), and all these files are aligned in Revit.
Aligning by hand in Unreal is going to be a bit of a problem
Thanks for revit datasmith plugin, i ve finally exported easily to UE, but when i import datasmith file into UE it creates a map file, then i make some small changes in revit then import again it comes with that changes but sometimes brings same meshes like doors floors again and again on same place , so it doesnt always updates meshes it sometimes brings same meshes on itself again, how should we import our changes to UE , i ve tried alot of things but i get random results, is there a proper way to bring revisions, like only bring changed items option ?
I can confirm this also; anything that is in the current file is translated over by Datasmith, but anything linked or referenced in to the current view, is left behind. This certainly makes it ‘tricky’ for our standard Revit workflows
Great, thanks for that. I already had a little python script for setting every mesh to a LOD group, but these examples might be useful for further optimization.
What I was wondering though: does setting the LOD for meshes also improve the performance in the editor or only during runtime?
Drawcalls, FPS etc are the type of considerations you have in both modes. Have a look at this online class that one of our technical artists gave on optimization and rendering, that should help you:
I’ve you tried using right clicking re-import on the Datasmith Scene?
You should also be able to re-import directly from the static mesh.(buggy right now)
Instead of having to re-import the all scene, which can be quit time saving when using large scenes.