Update: this version added some comprehension of IfcElementAssembly. What this means is that your converted IFC may end up with a subelement, and then a duplicate of it inside an IfcElementAssembly. If you are trying to do 1:1 item count comparison between Revit and Tekla BimSight, you will have to selected and hide or delete the IfcElementAssembly components.

You can use this filter to isolate them and then delete select them to delete:

Significant improvements added thanks to CADQ (see release info below).

Get version 15.4 for Revit 2015 here:

Also 16.1 is available for Revit 2016:

15.4 Release Info:

We have upgraded the 2015 Open source IFC project to version 15.4.0.
Changes include:

(15.4.0) IFC for Revit 2014 v15.4.0.msi
IFC for Revit 2015 Source v15.4.0.zip


  • Special thanks to CAD-Q (http://www.cad-q.com/) for their contribution of this improvement to the Open Source. Their contributions will be marked with (CADQ) below.
  • The installer has been updated to once again work with Revit LT.

New Export Functionality:

  • (CADQ) Ability to export only schedules whose titles include “PSet”, “IFC” or “Common”.
  • (CADQ) Added option to use the active view to generate the exported geometry. Note that this can have unexpected effects if used in a non-3D view.
  • (CADQ) Added an export progress report to the status bar, similar to how Link IFC displays progress.
  • (CADQ) Allow export of multiple loaded exportable projects. Note that for phasing, the list of available phases will be based on the current project only. If a phase other than the default phase is chosen, it will be used for all projects assuming that they have the same phase with the same element id. If multiple projects are chosen, default names will be used for the created files in the chosen folder.
  • (CADQ) Split walls and columns by level now also splits duct segments by level.
  • (CADQ) The “Advanced” tab tessellation level of detail controls now also apply to pipe fittings. In addition, instead of being a checkbox, there are now four options: “Extra Low”, “Low”, “Medium” and “High”. The default setting is Low, which is slightly higher than the previous setting.
  • (CADQ) When splitting elements by level, if the splitting operation fails, use the original solid.
  • Added a setup for the IFC4 Design Transfer View MVD. This is still a work in progress and is intended for advanced users to experiment with. The bulk of the new functionality is around using the IfcAdvancedBRep to generate non-faceted geometry and topology on export.
  • Added support for properties with friction loss and linear velocity units, both for standard Revit properties and user defined property sets.
  • All properties for PSet_ZoneCommon are prepended with “Zone” to distinguish them from Room properties. See the wiki for more information.

Export Bug Fixes:

  • (CADQ) IFC2x3: PSet_ZoneCommon now correctly exports “GrossAreaPlanned” and “NetAreaPlanned” properties (instead of the IFC4 GrossPlannedArea and NetPlannedArea).
  • Allow export of IfcElectricDistributionPoint (IFC2x3) and IfcElectricDistributionBoard (IFC4) entity types.
  • Allow export of DirectShapes in certain categories that were previously ignored.
  • Allow export of some infill elements in host objects. Infill elements are created when a host object has an opening that is not in the currently exported phase.
  • Exporting schedules as property sets will now include room elements.
  • Fix orientation of some floors exported as containers.
  • IFC2x3: Allow export of type properties for elements whose corresponding IFC entity doesn’t have a type in user-defined property sets assigned to “IfcElementType”.
  • Significantly improve the export of walls with openings in the corners. Both the wall profile and the opening geometry have been improved to reflect user intent, and fewer clip planes are used.
  • Switch between the IFC4 IfcBurner/IfcBurnerType and IfcSpaceHeater/IfcSpaceHeaterType and their IFC2x3 counterparts depending on the schema version.

New Import Functionality:

  • Always reload a linked IFC file if the importer version is different than the one used to originally link the IFC file.
  • Better handling of IFC color information when scaling is involved.
  • Create the log file earlier, allowing for logging of more general failures.
  • If the default log file is locked, create a log file with a temporary name in the same directory.
  • Log an error if no template file could be found to generate an IFC file.
  • Log an error if the IFC file contains a zero length vectors used in local coordinate systems.
  • Process IfcPresentationLayerAssignment for grids.
  • Store IfcProject, IfcSite and IfcBuilding parameters and GUIDs in Revit Project Information if no element was created for them.

Import Bug Fixes:

  • Correctly rotate projects whose true north deviates from project north.
  • Correct unit scaling and symbol display for friction loss, linear velocity, luminous efficacy, thermal transmittance, and volumetric flow rate.
  • Include units when displaying material thicknesses in the IfcMaterialList parameter and in some log messages.
  • Import extruded geometry whose profile is a single, unbounded, closed curve (e.g., a fule circle or ellipse).
  • Improve creation of geometry in cases where a Solid couldn’t be created, and we reverted to Mesh geometry instead.
  • Improve material assignment for geometries where the material was attached to the first argument of a Boolean operation.
  • Properly scale IfcVertexPoint input.
  • Stop displaying irrelevant property sets in the IfcPropertySetList parameter.

It hasn’t shown up on Exchange yet, but it is already available for download on the Sourceforge page. There is an update to IFC 2015 (the one that is really robust, fast and accurate for Import and Export), and also some updates to 2014 IFC addins.

Direct link to the MSI installer for Revit 2015

Some of my testing:
30% file size reduction in RVT when using Link IFC on 85mb steel model from Tekla v16.1
v15.1.0 = 297mb
v15.2.0 = 210mb

66% file size increase in IFC when using export IFC to all proxies:
v15.1.0 = 288mb
v15.2.0 = 478mb


Some key Export improvements from the readme (I’ve underlined points of interest):
The functionality for creating and using user-defined property sets has been greatly enhanced. This includes:
– Added a “DefaultUserDefinedParameterSets.txt” file to allow a user to create user-defined property sets for any setup, including the in-session setup.
– Added the “IFC2x3 Extended FM Handover View.txt” user-defined property sets file to the installation. This also fixes a typo in the original version.
– Allow the user to specify any file as a user-defined property set file, instead of being forced to use the default name and location.
– Increased the types of fields that can be used from the original 4. The full list is detailed in the DefaultUserDefinedParameterSets.txt file.
– The Setup dialog for the export alternate UI has been split into 3 tabbed pages to make it easier to find and understand the export options.

– Significantly improve performance when trying to export a highly-tessellated geometry.

New Import Functionality:

– Add an “IfcMaterial” field that contains the material name(s) associated with the element.
– Add an “IfcSpatialContainer” field that contains the name of the project, building, building story or space that contains the element.
– Create multiple layers for simple cases of elements where IfcMateralLayerSetUsage is defined.
Import IfcGrids. There are some fundamental differences between IFC and Revit Grids, most notably that IFC grids are per-view, and Revit Grids are per-model. As such, there may be cases where some grid lines show up in more views than initially designated in the IFC file.
– Improve healing and logging of imported solid data that is slightly dirty. This should result in fewer missing objects.

Import Bug Fixes:
Fix “missing” faces when elements were cut by openings and the IfcOpeningElement sub-category had its visibility turned off.
– Handle unbound circles used for profile definitions in certain cases.

Heads-up https://twitter.com/digiacomoemma/status/517072219739291648

In Revit 2015, you can use the IfcOpeningElement subcategory of Generic Models (and possibly other categories) for a Linked IFC to hide the orange “void” elements that appear in certain situations, as per this image:

Just use the Revit Links Display Settings to “override” settings in Visibility / Graphics (choose custom, and Model Categories tab also custom) to access this subcategory.

This 2007 research paper by Dr M M Nour gives an overview of IFC and some of the challenges of using it in a collaborative BIM environment. It posits a potential solutions that it calls FIOPE. It also considers IFC model splitting and segregation, and how to handle comparison and IFC file differences.

A few quotes:
“This paper addresses the problem of workflow management in collaborative teamwork environments, where multidisciplinary actors and software applications are involved. Design versions or variants may represent different development stages, partial designs or solution alternatives that need to be integrated together. The paper presents a novel approach to splitting and merging IFC sub-models (partial models) at different degrees of granularity away from the schema oriented approaches. It relies on an instance oriented approach (FIOPE) Flexible Instance Oriented Partial Exchange Environment…”
“…in order to achieve a lossless information exchange among AEC/FM project members, either the software developers should change their internal data structuring to eliminate irrelevant IFC data loss or the exchange should be limited to partial models that contain application-relevant IFC data. The latter seems to be the most practical solution…”

Full paper for download at:

via @IFC_Standards and @djnelson75

Revit 2015 has brilliant IFC Link capability – it is fast and accurate, and it even brings in colours for most IFC elements. We can leverage this to quickly create RVT files from IFCs, and then downgrade to other Revit versions if necessary. Here’s how:

  1. Select or create an appropriate Revit IFC template (RTE file) that is clean and has only two phases
  2. Set it at the top of the Template list in Revit 2015 Options – this is the template that will be used when Linking an IFC file. Interestingly, Revit will ignore the IFC Import template dialog setting when Linking.
  3. Link an IFC file into an open project.
  4. Locate the cache version RVT file that Revit created in the same folder as the linked IFC
  5. Copy that RVT somewhere else so you can modify it freely
  6. Open the RVT that Revit created while linking the IFC
  7. Important: Delete the IfcExportAs Project Parameters (there might be more than one). If you don’t, it can cause headaches when exporting.
  8. Use this IFC Export Classes text file for Revit 2015 which pushes everything into IfcBuildingElementProxy. The reason for this is that we want 100% geometry fidelity, but we are not concerned with editability.
  9. When exporting from Revit 2015, choose IFC 2×3 Coordination View 2.0
  10. Import back into a previous version of Revit (keep in mind points above about IFC import templates). The resulting elements will all be in-place Generic Models, with an Import Symbol inside. The file size will likely be pretty big, like 6 times the size of the original IFC.

This method should result in 100% item count fidelity. For my test IFC file:
Tekla BIMsight
2772 model items

Revit 2015
2772 model items

Navisworks 2015
2772 model items

Revit 2013
2772 model items

It is obviously not the way to go if you want maximum editability. But if you want maximum fidelity of geometry and reasonable import of IFC colours, this could be an option.

Use this IFC import mapping to get most objects onto Structural Framing category when importing to Revit 2013. Also, when trying to delete orange voids in Revit 2013, you can use a View Filter based on the Reference parameter to hide everything that is not a void. Additionally, the IfcOpeningElement material transparency can be modified to “check” that no other objects are going to be deleted that are actual real model geometry. Screenshots below:

Update 2:
Be very wary of purging. It seems in later updates of Revit 2015 that purging these IFC cache files can be destructive and result in deleted geometry – something that purge should never really do. Here is a demonstration of the issue:

I’m sorry but I couldn’t help myself… after the RVT and DWG link into RFA post over here, I had to try linking an IFC into an RFA file in Revit 2015. Guess what? It works.

  1. Download and extract this
  2. Copy the IFC you want to link into the same folder, and rename it to
    source RVT to IFC.ifc
  3. Open the RFA file
  4. It will come up with a link not found message – Open Manage Links, switch to IFC tab, select the row, use Reload From and select the file named
    source RVT to IFC.ifc
    (side note: this is probably the only time you will see a Manage Links dialog in the Family Environment, so I guess this is a added benefit of the current post)
  5. It will convert and link in the IFC using the usual method.
    (I’m not sure how errors are handled at this stage, such as “unjoined geometry” etc)
  6. There you go – IFC linked into Family

All of the usual caveats apply for linking things into RFA files, as per the other post. Additionally, you can’t Bind, Copy From, host elements, or Pick edges of the linked IFC. Its only real use at this stage is for modelling context.

Daniel has created a useful post describing how IFC Link works in Revit 2015.  Here are some key points from his post, as well as some of my own:

  • You must set a default project template before using the Link IFC function.  This is the same as Revit 2013 / 2014 etc – you could not import IFC without a default template
  • In Revit 2015 it is faster to Link an IFC rather than opening one
  • When you Link IFC, Revit 2015 actually creates a .rvt file from the IFC and then uses that data as the link.  The process is quite seamless from the user side, but it is something to keep in mind.  As Daniel describes, you can actually modify the ‘temporary’ RVT file slightly and it will not harm the link
  •  I’m unsure yet how this feature can integrate with Revit Server.  My initial feeling is that a manual step would be required each time, and you would probably open up the automatically created .rvt file and save it over the Revit Server version – but this idea is not tested as yet
Image from danielgijsbers.blogspot

Read the whole post: