Revit setup for OpenBIM/Revit and IFC classes

From Wiki.OSArch
< Revit setup for OpenBIM
Revision as of 21:43, 10 September 2020 by Moult (talk | contribs) (Created page with "It is possible to control which IFC classes map to which Revit objects when exporting and importing to some degree. Prior to reading this, it is important to first read th...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

It is possible to control which IFC classes map to which Revit objects when exporting and importing to some degree. Prior to reading this, it is important to first read the resources provided in Revit setup.

To set IFC classes and predefined types in Revit, it requires intimate knowledge of all of the IFC class names, which ones can be used (i.e. which ones are not abstract), and all of the predefined types possible. Revit does not provide any interface or drop downs or lists that aid selection. It may be useful to use the BlenderBIM Add-on IFC class search website to discover which IFC classes should be used.

Export

Revit follows three rules to determine what IFC class an object is exported as. Each rule overrides the previous rule.

  1. Check the IFC class mappings provided in the IFC export settings, to map the Revit family to an IFC class, unless ...
  2. ... unless the user has manually overridden the IFC class, using the IfcExportAs, IfcExportType, IfcExportAs[Type], or IfcExportType[Type] parameter, unless ...
  3. ... unless the particular Revit family is one of the series of hardcoded types that cannot be overridden no matter what.

OSArch provides an improved default set of IFC class mappings in the Revit setup page. You can manually access this by going to File > Export > Options > IFC Options. It lets you map both the IFC class and predefined type.

If if you wish to override the IFC class per instance or per Revit type, you can do so by assigning an instance or type parameter respectively. Shared parameter files are provided in the Revit setup page for convenience.

If you want to override a single instance, create a new parameter called IfcExportAs and fill out the parameter with the name of the IFC class that you want the instance to be exported as (e.g. IfcWall). If you wish to override the PredefinedType per instance, create a new parameter called IfcExportType and fill out the parameter with the name of the predefined type (e.g. PLUMBINGWALL).

Instead of overriding a single instance, it may be more advisable to override by type. All instances of that type will then be overridden too. The approach is similar, except that the parameters must be type parameters, and are called IfcExportAs[Type] and IfcExportType[Type] instead respectively.

If the project is based on IFC2X3, it is advisable to override by type, as IFC2X3 contains more granular IFC classes for element types, especially in regards to MEP disciplines.

You may find that despite these efforts, it is still not possible to control which IFC class Revit will export as. The following elements are hardcoded in Revit and

Import