IFC guide to exchange models between Rhino and Revit

VisualARQ includes a built-in IFC import and export plug-in which makes it possible to exchange VisualARQ and Rhino models with Revit (and other AEC software packages) using IFC 2x3 files.

How does it work?

Export from Rhino to IFC:

  • To save the entire model, go to (File > Save as..) and save the model as an IFC file.
  • To save part of the model, select the objects to export, and go to (File > Export) and save the model as an IFC file

Import IFC files into Rhino:
Open a new file (File > Open…) and select the IFC file to import. Make sure you have selected the IFC 2x3 Building Model (*.ifc) file type or All compatible file types.

Import IFC files into Revit:
Go to Open > Open IFC and select the IFC file.

What information do IFC files store?

IFC files store any “built-in” information from VisualARQ objects (i.e “Volume, Height or Area of a wall), and also custom parameters added to VisualARQ and Rhino objects. This video shows how to create custom parameters to add information to any kind of geometry. This information is read by Revit when opening the IFC file.

How are VisualARQ objects recognized in Revit?

The VisualARQ objects, once they are exported to IFC and opened in Revit, are recognized in Revit by their object type (walls as walls, beams as beams, etc…). Revit will understand the imported objects as native Revit objects or Generic Models depending on how objects have been created in VisualARQ.

The table below describes whether Revit reads geometry from IFC files as Standard Revit objects or Geometric objects:

  • Standard objects: Objects identified by Revit as native parametric objects. Styles are recognized as Revit families and objects can be fully edited.
  • Geometric Objects: The object’s geometry is recognized by Revit. The object type is identified but no parametric features are available.
Object type How was this object created? Standard Objects Geometric Objects
Wall
Walls created from straight or arched paths. X
Walls created from NURBS curve paths. X
Walls created from Solids (with the vaWallFromSolid command). X
Walls that have been extended vertically (with the vaWallExtend command). X
Walls that have had some solid added or subtracted (with the vaAddSolids and vaSubtractSolids commands respectively). X
Objects tagged as ifcWall. X
Curtain wall
Curtain walls created from straight, arched or NURBS curve paths. X (Curtain wall systems)
Curtain walls that have had some solid added or subtracted (with the vaAddSolids and vaSubtractSolids commands respectively). X
Objects tagged as ifcCurtainWall. X
Beam
Beams created from straight or arched paths. X
Beamsc reated from NURBS curve paths. X
Beams that have had some solid added or subtracted (with the vaAddSolids and vaSubtractSolids commands respectively). X
Beams created from Grasshopper definitions (Grasshopper styles). X
Objects tagged as ifcBeam. X
Beam joints. X (Not calculated)
Beams with custom End cuts. X (Not calculated)
Column
Columns with load bearing checked (*). X (Structural column)
Columns with load bearing unchecked (*). X (Architectural column)
Column from block X
Columns created from Grasshopper definitions (Grasshopper styles). X
Columns that have had some solid added or subtracted (with the vaAddSolids and vaSubtractSolids commands respectively). X (The solid addition or subtraction is not imported
Objects tagged as ifcColumn. X (Architectural column)
(*) Even though the “Load Bearing” is an object Property, it is necessary to create different column styles and check or uncheck the load bearing property to columns of the same style (in the model), otherwise Revit will recognize all them either as Structural or as Architectural..
Openings (Door & Window)

Profile based. X
Openings from block. X
Openings from curves X
Openings created from Grasshopper definitions (Grasshopper styles). X
Openings that have had some solid added or subtracted (with the vaAddSolids and vaSubtractSolids commands respectively). X (The solid addition or subtraction is not imported)
Not hosted (that are not anchored to walls or curtain walls). X
Objects tagged as ifcDoor or ifcWindow. X
Stair
Straight stair. X
Spiral stair. X
Stairs created from Grasshopper definitions (Grasshopper styles). X
Objects tagged as ifcStair X
Railing
Railings created from straight or curved paths. X
Railings created from Grasshopper definitions (Grasshopper styles). X
Objects tagged as ifcRailing X
Slab
Slabs created from boundary curves. X (Floor)
Slabs created from planar surfaces. X (Floor)
Slabs that have had some boundary added or subtracted (with the vaSlabAdd and vaSlabSubtract commands respectively). X (Floor)
Slabs that have had some solid added or subtracted (with the vaAddSolids and vaSubtractSolids commands respectively) X (Floor) (The solid addition or subtraction operation is not imported)
Slabs created from Grasshopper definitions (Grasshopper styles). X
Objects tagged as ifcSlab X
Roof
Roofs created from boundary curves (hip, gable and shed roofs). X (Each slope is read as an individual roof)
Layer-based from planar surfaces (composite roofs). X
Layer-based from non planar surfaces (composite roofs). X
Roofs that have had some boundary added or subtracted (with the vaRoofAdd and vaRoofSubtract commands respectively). X (Each slope is read as an individual roof)
Roofs that have had some solid added or subtracted (with the vaAddSolids and vaSubtractSolids commands respectively) X (The solid addition or subtraction operation is not imported). (Each slope is read as an individual roof)
Roofs created from Grasshopper definitions (Grasshopper styles). X
Objects tagged as ifcRoof X
Furniture
Furniture elements created from blocks. X
Furniture elements created from Grasshopper definitions (Grasshopper styles). X
Objects tagged as ifcFurnishingElement X
Element
Elements created from blocks. X (Generic Model or any other ifc Type assigned)
Elements created from Grasshopper definitions (Grasshopper styles). X (Generic Model or any other ifc Type assigned)
Annotation
Annotations created from blocks. X (Generic Model)
Annotations created from Grasshopper definitions (Grasshopper styles). X (Generic Model)
Space
Space created from insert point. X (Room and Room Label)
Space created from curve. X (Room and Room Label)
Space created from surface. X (Room and Room Label)
Level
Levels created in Level Manager. X (Floor plan)
Section
Section line. X (Generic Model)
Table
Schedule table X (Generic Model)
Rhino geometry
Surfaces, polysurfaces, extrusions, blocks and meshes. X (Generic Model or any other ifcType assigned)

How are non VisualARQ objects recognized in Revit?

Rhino geometry, such as curves, surfaces, polysurfaces or meshes, are exported by default as ifcProxy, and recognized in Revit as Generic Models.

However, VisualARQ provides the ifcTag that lets you export these objects using a specific ifc Type, according to the Building Smart public library for Building elements.

The ifcTypes can be also assigned to objects by layer, from the VisualARQ menu > IFC Export Options Dialog.

This video shows how to assign ifc properties by object and by layer with the ifcTag feature.

Problems

VisualARQ exports/imports the model to/from IFC empty of content. Why?

VisualARQ must be loaded before trying to import or export an IFC file. Load VisualARQ by running any command (i.e “vaWall”) and start the model exchange through IFC!

Revit imports the geometry out of place

Rhino models are exported to IFC taking the local coordinates as the origin coordinates. If you insert a model whose Base point is, for example, (20,30 (m)) into a new document, this will appear (20,30m) away from the origin coordinates of that new document. For that reason it is important to change the original model base point to 0: running the command “ModelBasePoint” and set it to 0.

Revit doesn’t import the model properly

A reason for that problem might be caused by the fact Revit opens and generates ifc files that are not 100% standard. To fix this problem they have released an Add-on that you can download and install before importing IFC files. You can download the corresponding one according to the Revit version:

After opening the IFC in Revit I don’t see any geometry

Make sure you are seeing the model in Revit in Phase 2.