Hey guys! Up to this point, a lot of the threads relating to Revit–Unreal pipeline are 2-3 years old. To get this thread extremely specific, I would like to talk within the environment of an architecture student (undergrad or grad) that is interested in using the engine to visualize their project through stills, movies or game modes.
A little bit of background of my own history with UE4 and architecture related software:
our work is geometry-heavy. Project can contain millions of triangles, and it can be disheartening to export everything in separate “blocks” to put them back up in the engine
we work mostly with 3D, sketchup and revit, because they offer quick visualization options for stills and other 2D graphics (plans, sections, perspectives,etc)
these programs do not export UV information natively, so the step of importing the geometry in 3dsmax or blender is absolutely necessary.
as architecture students, we are typically not completely knowledgeable with 3dsmax because it is not a standard architecture software for construction drawings. (lack of scale accuracy and other reasons)
we depend on forums to find a quick fix to our problems.
With that said, these are my current steps to transfer my project in revit to unreal:
isolate building in revit, export 3d view as fbx (initial file size 51MB)
import fbx into 3dsmax, to conserve the scale of the building
group similar elements (mullions, columns, walls) to reduce file size
**i dont know how to do this step **add secondary UV channel for light mapping
Export file as fbx from 3dsmax, smoothing groups, turbo smooth and preserving edge (?)
Importing fbx into unreal engine (post 3dsmax file size 120MB), importing normals and unchecking the box to import materials and textures (less loading time)
setting fbx collision setting to simple (per poly)
Place fbx into level, set character start -> and walk through the project!
Unfortunately, this took 4 months to figure out (a lot of wasteful fbx) and when I build the lighting, the UV are 99.9% overlapping. I know know that the reason is because I just have a default UV map. The problem is, there is no one on earth that has documented adding a second UV channel on a project efficiently. Because sure, I was able to add UV mapping, but it tripled the file size to 530MB. I have a very powerful computer (4.16Ghz and 32gb of RAM) but trying to load that into unreal just made it crash. EVERYTIME.
So here’s the deal:
As architecture students, we dont have the time to export every thing separate because that slows down our workflow. You all have to remember that the use of the unreal engine is to provide critical supplemental 3d graphics to our reviewers, who have never seen our project before and never will (because it will never be physically built).
We love textures! We spend a good chunk of time organizing a set of textures that speak to our project. Having a lot of overlapped UV textures (usually green or gray) just doesnt do it. Even if there was a blueprint to multi-place texture to everything, that would be helpful too.
Architecture software is expensive, but general 3d modeling is mostly free (blender, unreal, unity, etc). If there’s anybody in the architectural field (typically in the academic setting) that has access to software (rhino, revit,etc) please add to this thread in any way you can!
However, when you import geometry into Unreal Editor, it can generate light mapping coordinates for you. That might be easier.
Also note that, for production game use, you’ll want to use these auto-generated coordinates as a starting set, and then stitch and move them around by hand to create a “better” mapping that makes more efficient use of texture space.
For needs where you’re not pushing a game console with limited resources to the max, though, this method is just fine!
I think this can be good for certain things, but for the actual house I prefer it not to be 0’d off before imported. That way if there is any structural changes to the house I can just import the new meshes and just slot them into position.
There is a tool which is similar called greg’s tool, which looks like your TS tools
when I tried to add a uv channel and flatten it, it was already flattened and all messed up.
From your guide, I noticed that the teapot is one, editable mesh. Revit unfortunately is very messy, modeling in a “kit of parts modeling” making it hard to have clean meshes. Is there a fix to the uv maps or is it just a modeling issue at this point?
3ds Max has a “collapse selection” utility on the very far right. (Rightmost small tab, scroll down to “collapse”, select all, press collapse button)
This makes all things that are selected into a single mesh.
You should then be able to do the “single mesh mapping” job.
Given that all of this is scriptable (as is FBX export) you could build your own utility/script that does all this, if you’re so inclined.
(Some of those light mapping scripts above would probably be a good start)
use steamroll to correctly flatten and add uv channels to the meshes.
Collapse similar items (all the columns, etc) into a single mesh
Exported a before and after collapse command, and the file size increased!!
I reduced the number of entities (from 3000+ to 124) and the file size is higher!
should i be worried?
I’ve purchased/downloaded the scripts mentioned above, it will take me a while to learn how to use them (i dont know how to script… yet)
Will any of them help reduce the file size to be loaded into unreal? (ive been loading with the combine meshes checked)
Yes! That’s a draw-back, but as long as you don’t actually run out of RAM in the machine (or graphics card) that’s not a problem.
The reason is that, when you have 300 separate steel beams, each instance says “put an instance of that steel beam in this place,” which just stores a reference to the original beam, plus its coordinate transform.
When you collapse all the objects to one, it replicates the vertices of that steel beam instance into a pre-transformed copy for each instance, making essentially one big, “custom formed” steel beam structure.
This ends up being more efficient for the rendering engine/hardware, so this is almost always actually a good thing. Except if you have to send files to a client over a slow network
Its my understanding that instancing of beams would be more efficient, not collapsing like objects into one mesh.
I’m also struggling to find a good revit workflow. I’ve popped in and out of the community multiple times over the past 2 years to see how its progressed. I don’t have much time to experiment unfortunately. Seems that steamroller is something I should try.
I went through this whole process a couple years ago, trying to find a perfect workflow from Revit, and I can tell you there isn’t one. You have to be quite dynamic when using a Revit workflow. Some objects you can pass through steamroller and right into UE4 in a couple minutes, other objects have to be remodeled and unwrapped by hand in 3ds max. Revit just isn’t made to work well with UE4, 99% of the families you use will look horrible and anything curved or round is useless. It’s fine to use the basic structures from Revit but any details should be remade in 3ds max (most Revit projects shouldn’t have a lot of modeled details anyways).
I know it’s not the solution you were looking for, but after a few years its the best solution I can find. There are some really great tools for 3ds max that will help the process like Steamroller, and TS_Tools mentioned above. Another good one that helped me with 3ds Max(coming from an CAD/Revit background) is PolylinePro, it allows you to model in 3ds max more like you would in Revit/Sketch-up.
I can try and help you with anything you need or any specific questions. Just ask away and I’ll keep an eye on this thread.
Thanks for the input! I’ve finally managed a really easy workflow so far:
-> import fbx into 3dsmax
-> collapse similar items, reducing static mesh items to a manageable volume
-> import into unreal without combining meshes
-> force precomputed lighting to visualize without UV mapping errors
-> set complex collision as simple
-> place material
-> build and done!
Now of course forcing precomputer lighting gets rid of the need of having secondary UV, but for the final product that I was intending, this worked out just fine!
This it the same thing that I am trying to do and I am also struggling with the UV maps. What do you mean by “force precomputed lighting to visualize without UV mapping errors?” I am trying to take my Revit models into 3ds, then into UE4. I am getting the errors when building lighting of Object has wrapping UVs, or Lightmap UV are overlapping. You can see in the screenshot what my model looks like after building. I’m assuming that crazy pattern is because of the lightmaps?