How to import from revit to UE4?

I’m an architect and I’m interested in using UE4 to create walkthroughs and videos. I have watched all the tutorials and read some more, but there is no tutorial as on importing from revit. I exported fbx file from revit but when I import it on UE4 either all the pieces of the project, in this case a house, are all separated, or all stacked together in one mesh, also there are no materials imported and the scale is off, so my question is if there is a workflow that i should follow to be able to import correctly my models to UE4.

Thanks a lot , I hope there is someone here that has come to a solution to this.

Hi Julio Arco,

You may have read through this already, but if not here are the documentation links for our FBX pipeline:

FBX Import Options Reference

FBX Best Practices

The biggest take away from the above would be the following:

  • UE4 uses real world scale. 1 unreal unit = 1 centimeter: so you will need to set your scale to this when you build.
  • When you export you need to make sure your meshes pivots are centered to the world origin of your modeling software. UE4 uses this as the pivot, not the meshs pivot.
  • When importing into UE4 there the two options are to have everything as one mesh but this will greatly impact lightmaps for the second UV
  • When you import the model there is no with UE4 to retain the meshes original pivot points.
  • You will also want to create a second UV for lightmaps if you’re not planning on using dynamic lighting.

If you have any questions feel free to ask.

Tim

Hi Julio,

I know you sent me a PM with this, but for the sake of helping others as well I’m posting your questions here with follow up answers. :slight_smile:

Ive tried importing the fbx as one
mesh, and as separated. But when i
import them as one mesh, and try to
apply materials to a wall or floor,
the material applies to all of the
project because it is just one mesh,
and im starting to think that the
reason are the UVs, im not familiar
with them, because when i import, an
error appears that the UVs are
overlapping.

The reason you’re getting UV overlapping is a couple of reasons. The biggest reason is that the UV channel is being used as the lightmap (where shadow information gets backed for static meshes). If you’re materials are looking OK you can make your Directional Light and any other Movable which will make them dynamic and not need to bake any shadow information.

If you want crisp shadows that are baked and provide zero overhead during run-time you’ll need to created a second UV that can be used as a lightmap. The key here is that any mesh geometry must stay within the 0,1 UV grid space.

I’ve not used Revit before, but I know it doesn’t really use any convential UV setups.

I’ve suggested in the past for those who don’t have access to UV tools in their programs to use Roadkill UV because it’s easy enough to use, there are tutorials to get started, and it’s FREE! (Link Here) Video Tutorial to get started.

Im not trying to get that deep into
this engine, i just want to build
several blueprints to turn on or off a
light, open and close a door, build
some landscape, the house, some
furniture, etc. And also when i try to
import furniture there are some issues
with the UVs.

If you’re only concerned with doing something as a visualization and not focusing necessarily on game play then using Dynamic lighting may be your best bet, at least with getting started. This will negate the need for lightmaps and a second UV that is causing the Overlapping faces warning you’re seeing.

Is there anyone you know that
specializes in architectural
visualization who can help me out
here? I want to be able to do
something like the “photorealitic
rendering” example.

There are quite a few ArchViz guys on the forums doing some really cool stuff that could probably give you some pointers more so than me.

Here are the users and their Forum WIP posts:

CodeCode: https://forums.unrealengine.com/showthread.php?32817-MY-First-attempt-arch-screenshot

Koola: https://forums.unrealengine.com/showthread.php?28163-ArchViz-Lighting

HAI: https://forums.unrealengine.com/showthread.php?32072-Archviz-Villa

Ganeshp: [Some of my first architectural visualization screeshots in unreal engine 4 :) - Architecture - Epic Developer Community Forums)][6]

This one is especially interesting in that he has done a lot with Blueprints and interaction with the scene:

Fafareis123: [Architecture realtime - Architecture - Epic Developer Community Forums][7]

I hope this all helps. I know it’s a lot and if you have any questions feel free to post here and I’ll help out where I can! :slight_smile:

Tim

[6]: Some of my first architectural visualization screeshots in unreal engine 4 :) - Architecture - Epic Developer Community Forums)
[7]: Architecture realtime - Architecture - Epic Developer Community Forums

Something I need alittle nudge with is this:
Say you go from revit > 3ds > ue4. I have all the little ‘pieces’ of the revit file in fbx, and when dragging the meshes into the level (ue4) the proper location is maintained.

However, say there is an iteration in the design/layout in revit (or whatever modeling program you use). How do you update the existing level in ue4? Re export revit > 3ds > ue4? There isn’t really an ‘update link’ or update origin point. Do you just import the updated fbx files and effectively overwrite the old ones?

Will materials be maintained through this process?

Thanks!

If your original process was to build in revit then take to 3ds to UE4 you’ll need to maintain this method if you want to update the mesh or level you’ve created.

As far as materials go, if you’ve not changed any of the material ids from revit or 3ds when reimporting this should carry over without any problems.

I’ll go into my process a little bit since the auto-reimport process has been greatly improved with UE 4.8.

  • I build my mesh in 3ds
  • I setup my project and in the project folder > Content I place a folder that I name “source_files” **
  • I export my 3ds model to FBX and save in Project Folder > Content > Source_Files
  • This will trigger an auto import of the FBX or other compatible asset saved here
  • If I need to update something on the source file I simply fix it in 3ds and export the FBX to overwrite my original file.
  • The file will be auto-reimported and updated with any changes I made instantly.

** In 4.7 we introduce the auto-reimport feature when source files are stored in the Content folder of a project they will automatically be imported and reimported if a change is made to them.

Search for “Automatic Asset Importing” for a demonstration:

I hope this helps and answers your questions. If not let me know.

Very good information, basically the ‘auto re import’ will shift the location of different assets, if moved in design interations.

I’ll read some of the docs about the auto asset importing, and test out your workflow.

Next question is something us Revit users run into (you touched on this already above).
-Overlapping UVs, most of the time, regardless of selecting ‘generate lightmap uv’ during the import process, still spits out the lovely ‘overlapping uv’ error.
I found that this can be fixed by increasing the resolution of the lightmap in the mesh editor and rebuilding.
—Question is: Is it possible to increase the lightmap resolution for these meshes without doing it manually for each instance?
----The reason its sort of a big deal (for revit users at least), Revit is a messy modeling program. For instance, a door which consists of your trim and door itself may be seen as 5 different meshes. That means I have to increase the lightmap res for all 5 pieces.

I will have to explore your suggestion of making the lights dynamic (changing to moveable?)(new to the idea of dynamic and baked lighting, and how to achieve them). Only concern is performance in a VR situation & dyamic lighting.

Thanks!

Let me introduce you to the Property Matrix! This is one of those features that is way under valued and often overlooked. It gives you the ability to mass edit a bunch of objects to avoid doing exactly what you describe!

You can select the object in your scene and use via the world outliner or you can select them via the content browser > right click > Asset Actions > Property Matrix.

This will give you access to settings for all of the selected meshes.

As for lighting, since the time of this original post Eric and I have setup the start of a simple Wiki Lighting Guide for common lighting issues and their solutions with examples to demonstrate. This may be helpful as well. :slight_smile:

You are the man.
I will be testing this all out when I get a chance!

Definitely! Give it a shot and if you have any issues feel free to post and let me know. :slight_smile:

You can use twinmotion’s revit plugin. It works well.

Does it works? I tried some weeks ago but UE doesn’t recognize the FBX exported from that plug in. It seems like it’s protected.
What version of the plug in are you using?

It seems work. We didn’t have any problem. Twinmotion Revit 2014.

i think i´m having some problems, importing the meshes, with the uvwmap, because:
I set cm in revit and export it to 3ds max in cm, but when i assign the uvmap i set box type, in this step i have a question:
Do i have to set 100cm i the 3 values??, because when i set this, the “box” of the uvwmap is really big more than the meshes

you can use revit export to twinmotion plug

I see that this was marked as answered, but in case anyone is reading and wondering:

The process in the imagery of this particular comment is not correct for baking individual light maps for use in UE4. The correct modifier to select is “Unwrap UVW”.

Process is:

Select element to map
In extended modifiers tab pull down, select “Unwrap UVW”
Select the polygon icon in the “selection” portion of the options
Click “Open UV Editor” under “Edit UV’s” portion of the options
In the “Mapping” menu at the top of the UV Editor window select “Flatten Mapping”
Select “OK” - (if you need/want to tweak these settings go ahead, but the default settings generally work out fine)

Once it’s re-mapped, and it can take some time depending on your poly count, close the editor window.

Once you export the file as .fbx the UV lightmap will be attached to the file.

Imported into UE4, the mesh will use lightmap 0 by default.

Double click the static mesh icon you imported and in the UE4 mesh editor window you can click the “UV” icon in the top ribbon and select between the options in the pull down that’s just to the right of the UV icon. This will only display the map associated with the number.

To select the correct map, and in this process you will have to… While still in the static mesh editor window, expand the options for “Build settings” in the LOD section of the options menu on the right. Change the “Source lightmap index” to the number you need (probably 1 if you haven’t mapped it to a different channel while flattening it out of 3DS).

Click “apply settings” at the bottom of the LOD section.

Save the changes and to see the different results, rebuild lighting in the “Build” option in the main UE4 Editor window.