Anton's Research Ramblings

3d Viewer for Revit and ArchiCAD Plans

I've been playing around with architectural software and file formats lately. I had a go at IFC models, FBX models, Obj models, and a few other things with ArchiCAD and Revit. Their integrated 3d viewers really suck - I don't know how anyone puts up with that software. The slowness and camera controls in Revit are particularly bad. I had a got at making a Revit architectural plan viewer in OpenGL.

The sample project from Revit 2014 viewed in OpenGL. It mostly worked. The normals from Revit were all wrong so I recalculated them manually for flat shading.

It looks like one or two of the downstairs kitchen walls weren't exported properly - maybe they are a special type. Not sure yet. All of the exported normals from the FBX file were wildly incorrect and invalid, so I wrote some code to recalculate them all. That lets me do some awesome logarithmic-based shading so that it looks like Solidworks or something - no Phong lighting, but still nice perceptual differentiation of surfaces.

Exterior view of the Revit 2014 sample project, viewed in OpenGL. It's several bazillion times faster than Revit's own viewer.

I wonder if it's possible to get a nice set of matching materials so that the doors can be brown, and the windows know to be slightly transparent, for example.

An observation is that the file formats are too large and do not scale well to levels of detail. There is huge amount of detail on the washing machine's control knobs that could easily be simplified out and reduce the file size. I wonder if there's a nice way to do that.

Colours and transparency worked surprisingly well.