Rhino to IFC Example
Example on Transferring Rhino Objects to IFC within Rhino
Last updated
Example on Transferring Rhino Objects to IFC within Rhino
Last updated
The below outlines the steps in order to use this process to set-up a simple building transfer as shown in the image below.
Download the .3dm Rhino file for this example here.
The geometry has been created in Rhino from a variety of scripts and generic modelling. The building will be broken into 4 levels and the elements will be assigned to each. A triangular mesh also defines the existing topography of the land.
The first step is to create a Rhino Layer Hierarchy that applies to your project. Follow the steps here along with the image below:
1.0 Create a Root Layer for the Project.
2.0 Create a new Sub-Layer defining the Project Site.
Assign the site topography mesh directly to the Site layer. This will ensure the topography will be assigned in the correct location on export.
3.0 Create a new Sub-Layer under the Site Layer defining the Building.
4.0 Create new Sub-Layers under the Building Layer to define each Building Storey.
For a small building such as this, it may not be 100% necessary to provide building stories, simplifying the layer hierarchy. The products/elements could all be defined underneath the Building layer itself.
5.0 Now that you have generated the primary hierarchy of the building you can start to defined the object which will be associated with each Story. The below shows an example on how to do this:
Each 'Type' should be defined as a separate layer and all the associated objects or 'instances' of these be stored within this layer. Taking the Foundation level as an example, a separate layer has been defined for both the 700 diameter pad foundation and the 500 diameter pad foundations. Each instance of the type is contained within the layer.
The Tripod foundation frames will be defined as IFC Assemblies (a joined collection of elements - as this will be a welded frame which sits on the foundations). For each IfcAssembly a separate local layer hierarchy should be defined and associated objects assigned to those layers. Similarly, the same can be completed with stairs which are built up of multiple elements such as treads and stringers as shown under the Ground Level Layer.
Once you have defined the object into a layer hierarchy you can use ggRhinoIFC Layers to define how the objects are to classified into the IFC file which will be exported.
The root or highest most layer should be defined with the classification of IfcProject as shown below. The name of the project will be taken from the Layer Name itself.
No Objects need to be defined within this layer. It is simply used to set-up the hierarchy of the project.
Once you have set the appropriate layer to the class of IfcProject there are a couple of different options that can be provided to the IFC project. For example, you can add a Profile Library to be used with the Project. This is an .ifc file definition which contains a library of profile definitions which can be applied to ifc classes which typically have extrusion representations such as IfcMember, IfcBeam and IfcColumn.
A Project Template can also be defined which can save you time in generating the layer hierarchy from scratch each time.
Assign the second layer in the hierarchy to the IfcSite as shown in the picture below. Ensure that the topography mesh is assigned to the corresponding layer in Rhino. Typically this layer should be named Site.
The IfcSite context options allow you to set a position of the site by either Manually setting a plane by SetPlacementPlane or selecting an already defined Rhino Construction Plane. You can also set the site Latitude, Longitude and Elevation of the site from here.
Model positioning is poorly agreed and inconsistent across a number of software application implementations so always ensure you have a way of checking that your model is correct on export. If you are having issues with this please contact us for guidance.
Once the site information has been set. Set the next layer to the classification of IfcBuilding as shown below. The building Name will be taken from the name of the corresponding layer.
Again, you can set additional information such as the placement plane of the building and other description information. You should not need to have any geometric elements stored within this layer.
Set Level Information
For each of the levels I can use the right click context menu to assign the the children layers to that level. Right click to view the context menu set the layer classification to IfcBuildingStorey. The Storey name will be taken form the layer name itself.
Once you have set each Level layer to the appropriate classification you can again right click on the level layer and assign the elevation for each level as shown below. You can use Set Children Layers on the building level layer to set all layers to the IfcStorey Classification.
You may also want to assign the level by a placement plane as shown above.
Sitting on top of the foundations will be a welded brace frame which will support primary beams. This frame is built up of a number of IfcColumn and IfcMember, which we will include in an IfcElementAssembly.
To define an assembly select the Parent layer of the assembly and assign it the appropriate assembly classification. You should not have any objects within the Assembly layer itself.
Once you have assigned the IfcElementAssembly you can assign the elements in the children layers. In this instance assign the 3 legs of the tripod to an 100CHS Column Layer and nominate that layer as an IfcColumn. Nominate the 2 connecting plates of the tripod in an IfcMember.Plate classification.
At current each different assembly should be defined in its own layer system. Therefore, complete the above for the two other Tripods.
If all the elements in the children layers are of a similar class you can bulk nominate all of these at the same time by selecting the Set Children Layers and then selecting the desired ifc classification.
Set Typical Element Information
The last step is to assign class information to elements contained within the different type layers for each level. This can take a little time depending on the size of the model and the number of different types. Below is an example of how the Ground Level Layer has been set up in this example. All of these classifications can be selected under Ifc Classification > IfcElement > IfcBuildingElement in the context menu.
You will notice that the stair has been broken down into a separate hierarchy (similar to the IfcAssembly) as there is more then one element that is defining the stair. This could also be done for the railing or even the different components for windows and doors but for simplicity they have been.
If no classification has been defined for a layer within the hierarchy the exporter will export the objects contained in that layer as general elements of no specific.
When an element is selected as an element ****(i.e IfcColumn, IfcMember, IfcBeam etc.) which can be represented as an extrusion you can manually assign which profile within the Profile Library (defined at the project level) will be applied. We are not using the profile definition string in this example.
Set Layers to Ignore
In this instance there are two layers in which I do not want to include in the IFC file, Default and WORKING. In practice these layers by default would not be included in the export as they are not contained within the hierarchy underneath the root Project layer. You can also set layers within the root layer hierarchy to IGNORE and these will not be exported.
Once you have set the information to the geometry you can export the IFC file by navigating to the defined project line in the RhinoIFC Layers panel. Right click on the the root project later and select ExportToFile.
The typical RhinoIFC Export options should appear and you can select the options you wish for your export. For explanation on export options please see here.
Once you have exported to Ifc try and import the ifc file into another application for viewing.