Project: Navisworks Timeliner to 3ds Max
At work I use Navisworks to do a variety of things, including using it to create animated construction timelines. Naviswork's rendering capability has improved over the years, but there's not many options for controlling how the timeline animation looks, and not many ways to speed up the rendering process. I find the way Naviswork's handles FOV to be quite annoying, and due to time constraints, the best I can hope to do is export viewport sequences. I hope to change that...
What I needed was a way to get Navisworks animations into 3ds Max. As far as I know, there's no script available to do this. When I decided to do it myself, I broke the process down:
1. Export Sets from Navisworks
2. Export Timeliner sequence from Navisworks
3. Link original files into 3ds Max
4. Import Sets into 3ds Max
5. Import Timeline into 3ds Max
Sets require a way to identify objects. Navisworks natively uses UID, which 3ds Max doesn't see even if you import NWC or FBX files exported directly from Navisworks (please correct me if I'm mistaken!). So I'm forced to use something it can see: Revit ID numbers.
Before the 2015 release, it used to be that the Revit models when linked into 3ds Max would only have some properly named objects, the rest being named seemingly at random. Fortunately, all of those ID numbers now come through properly. Perhaps it was a bug in 2014's Revit Interoperability program. The workaround was to export to FBX from Revit, then import or link that file into Max. Revit Interoperability does this for you, so the results should be exactly the same save for the name and type of file.
So far, I have created a tool to export sets from Navisworks to a text file. And I've created a Maxscript tool to import those sets from the text file. Now I have to make a tool to export animation from Navisworks, and a tool to import that animation into Max. I've uploaded a video of it to YouTube.
I'm also looking into speeding things up by re-creating it all in C++ with the SDK, but I'll have to study up on that language again. I've been in the safe confines of C# for years, and since programming isn't really my job, that hasn't been a problem until now.
I'll release the scripts and plugins when I feel it is ready. Until then, I hope this blog entry has perked some interest. I am open suggestions, ideas, and alternatives.