ArchiCAD and Revit to Unity3D: more about architectural visualization with Unity3D and comments from readers
Below the fold are some additional points raised by YouTube, Twitter and blog commenters around the topic of importing architectural BIM models into Unity3D.
One additional point I want to make is the important distinction between Unity3D best practices for game design vs. best practices for architectural visualization. The requirements for reducing poly count and subsequent draw calls with Unity for producing a game is a completely different ballpark than what is required for most architectural visualization projects. While you certainly want to achieve the best possible performance, sometimes the geometry you retrieve from BIM could very well generate a very high number of draw calls, and that’s fine! Well, most of the time anyway..
Early on, I read somewhere that published Unity3D builds should try to be under 100 draw calls. Phew! When some of my Revit models came in at 1,500 draw calls, I thought it was a lost cause. But you really have to think about your intended audience, their computer hardware, and the method you use to publish your models. For example, most of the projects I’ve generated are most often installed as stand-alone apps on the client’s main office computer, where they bring up the virtual walk-through when they want to do a demo in-house. They aren’t as concerned with getting it published to a web browser for anyone in the world to see, they just want a solid realtime walk-through to show off at the office to impress potential clients. Unity works perfectly for that.
In cases like this, depending on the machine they’re running the demo from, you can afford to get away with a model geometry that isn’t completely optimized. You can go ahead and publish with a much higher number of draw calls, and maybe even run with a full set of dynamic lights, and all kinds of bells and whistles that probably won’t bog down the demo.
There are lots of game developers who would reject this possibility as sloppy, sub-standard work, but the bottom line is – if 1500 draw calls is the best you can achieve within your abilities, you don’t have the time or ability to learn how to bake lightmaps or reduce the geometry within your software portfolio’s capabilities, and it works for your intended use case, then so be it! It’s still much, much better than the alternative, which is to attempt a realtime walk-through within your BIM application (not likely!) or to produce an animation, which will be much more prescriptive than a realtime walk-through and probably end up taking longer than it would to port the project over to Unity3D.
For those not acquainted with architectural software, and more in the mindset of producing games for a much larger audience, it may seem preposterous, but even if your published Unity build crawls along at 10 frames-per-second, it’s *still* better than the alternatives, imho. No other medium enables you to experience a design in such a holistic way as a realtime walk through in a game engine, and it’s well worth the effort.
On top of that, there are all kinds of tricks-of-the-trade, best practices, and new tools emerging around how to make the best use of high-poly models. There are so many powerful options within Unity’s latest releases that can help tackle inefficient geometry, I think it will become increasingly feasible to leverage Unity for even the most complex models.
Of course, if you’d rather not worry about this at all, and would rather turn the project over to us to do the work for you, we can convert your CAD, BIM or 2D blueprints into Unity3D walk-through – just send us a note for an estimate.
Here are some comments from Twitter, YouTube, and this blog, adding some additional perspective on the topic of using Unity3D game engine for architectural visualization by importing models from BIM applications like ArchiCAD and Revit.
Stefan Boeykens says:
I’m combining Unity3D with ArchiCAD (also BIM software) and found that the best workflow is passing through Cinema4D. ArchiCAD has a free Cinema4D exporter, supporting updates and the Cinema4D-Unity3D link is also working fairly well using FBX. That way, you can update the BIM model, reload it in the visualization software and reload it in the Game Engine, leaving most of the scene intact.
I assume that the same goes for Revit, but passing by 3ds Max instead of Cinema4D.
I discussed my workflow from BIM to Game Engine in my CAAD Futures 2011 presentation:
@vsaitoo (Dave Buchhofer) writes via Twitter:
“ive done a few revit to unity projects, but with the help of a lot of mostly automated scripting to clean things up.”
badbii on YouTube comments:
Best way to scale objects = import settings! You can adjust everything to be x1 y1 z1 in game!