Friday, 3 June 2011

Rhino v5 Extrusions, GeomGym Plugins

I've been enabling Rhino version 5 light weight extrusions to the Geometry Gym Rhino plugins, that uses less memory, meshes faster and saves out to much smaller file sizes.

I've seen and heard some positive demonstrations and reports of this improvement, but decided to do some quick bench marking for myself and the results are impressive.

I prepared some approximate models of the British Museum Great Court Roof as part of this discussion with importing IFC models into Archicad.

The model comprises 5180 members, and the improvements from v4 to v5 are really impressive.
I've benchmarked using the Geometry Gym IFC importing plugin, which will use the new extrusions when running in v5.  If you want to try for yourself, install/update the plugin, and the IFC data file can be downloaded here.

Or, if you just want to open the rhino model, download here.

Time wise (only considering the generation of the extrusions, ignoring file reading time etc) it took 35 seconds on my computer to generate 5180 version 4 extrusions.  In version 5, it took less than a second.

When saving out the rhino model, version 4 produced a file 74 MB, version 5 produced a 3 MB file.

And there is very little lag or delay when panning, zooming and rotating the v5 model, in comparison with v4.

The only drawback (which should be a temporary matter and improved as the beta version of 5 progresses) is a much slower start up time for version 5, particularly 64 bit (which seems to be made slower by loading geometry gym plugins which is being investigated).

However, if you're working on skeletal or frame models, I strongly recommend taking the step up and using v5.  Extrusion elements also can accomodate end miter planes, which I'm in progress of enabling to the plugins.

With regards to the IFC plugin, you might also notice some other speed improvements when importing large faceted brep models generated by other BIM software.

Feel free to comment with any suggestions or observations of your own.


  1. Nice model! Here are a several suggestions for further reducing IFC file size and boosting performance (most certainly for Constructivity, probably other apps as well):

    1. Rather than having separate IfcExtrudedAreaSolid items for each beam with the same profile but different position, create a single IfcExtrudedAreaSolid and use IfcBeam.LocalPlacement to position and orient each. Then the resulting mesh is stored and accessed on the GPU once instead of for each of the 5000+ beams. This may also improve picking in some apps such that the bounding box for selection is aligned with the geometry (since rotation is at object level instead of geometry level).

    2. If the beam segments have same profiles but different lengths, use IfcMappedItem and scale each. This again then saves GPU by re-using the same mesh but with different transform.

    3. If the beam types are the same (same profile and optionally same length), then create a single IfcBeamType containing a shared representation instead of separate types for each instance.

    4. IfcRectangleHollowProfile.InnerFilletRadius is negative - some apps might reject the file or generate incorrect geometry.

    This is an impressive model!