The excellent and open-source IFC extension for Revit (previously known as IFC Exporter) has been updated. Please see below for download links and update details.

Download links:
16.6 for Revit 2016

17.3 for Revit 2017

Readme details for the latest release:


– Minor improvements to the Importer class to make it easier for developers to create a custom Importer.
– We now support the IFC4 Addendum 2 schema.  Specific improvements based on that will be listed below.  For this update, you will have to manually add the IFC4_Add2.exp file (included with this package), to the EDM subfolder of your Revit Program folder.  We will automate this in a future update.

New Export Functionality:

– Allow overriding material names on export by using IfcName shared parameter.
– Expand the use of types for many elements that didn’t export types before, including beams (IfcBeamType), curtain walls (IfcCurtainWallType, and types for mullions and panels), and footings (IfcFootingType).
– Improved ability to export some geometry as IfcSweptSolid.
– Try to use axis information, if it exists, when exporting beams and members in addition to columns.
– (IFC4) Better support beam, column, and member base quantities, including weight.
– (IFC4) Collect material information for profiles for beams and columns.
– (IFC4) Expand use of FootPrint representations to columns and slabs.
– (IFC4) Expand use of IfcMaterialLayerSetUsage if the entity has a compound structure in Revit, as allowed by IFC.
– (IFC4) No longer create StandardCase IFC entities, as these have been deprecated (including IfcWallStandardCase).
– (IFC4) Support IfcMaterialConstituent and IfcMaterialProfileSet for a number of elements.
– (IFC4) Use Built-in parameter “Structural_Bend_Dir_Angle” to get “Roll” property for PSet_BeamCommon and PSet_ColumnCommon.
– (IFCAdd2) Support IfcPolygonalFaceSet.

Export Bug Fixes:
– Allow exporting to IFC while using Collaboration for Revit where the default directory isn’t local.
– Better support for MEP type entities, that didn’t always export correctly.
– Correct the parameters of the directrix of some IfcSweptSolids.
– Fix correct mapping of IfcBurnerType/IfcGasTerminalType and IfcElectricHeaterType/IfcSpaceHeaterType.
– Fix creation of types for sub-entities of IfcDistributionControlElement.
– Fix offset problem when using the “Export Linked Files as Separate IFCs” option in locales where the decimal mark is not a point.
– (IFC4) Correct names of IFC4 entity quantity sets.
– (IFC4) Fix the name of IfcCommunicationsApplianceType.

New Import Functionality:

– Add support for IfcDerivedProfileDef.
– Support IfcRelClassification.
– (IFC4) Support IfcMaterialProfile, IfcMaterialProfileSet, and IfcMaterialProfileSetUsage.
– (IFC4) Support IfcMaterialConstituent and IfcMaterialConstituentSet.
– (IFC4) Support IfcTessellatedFaceSet and IfcPolygonalFaceSet.
– (IFC4) Improve mapping from Roll parameter to structural bend direction angle.
– (API only) Allow for two new options, CreateDuplicateZoneGeometry and CreateDuplicateContainerGeometry, that disable the duplication of geometry for zone elements and containers, respectively.

Import Bug Fixes:
– Better reporting when importing an IFC file with invalid rectangular or circular profiles (e.g., a 0 radius profile).
– Don’t show the void geometry when subtracting a void from an empty solid as a result of an IfcBooleanResult calculation.
– Ensure that IFC2x schema files can still be imported.
– Fix import of some IfcSurfaceCurveSweptAreaSolids.

When Revit exports to IFC, it typically uses the current Location (Survey Point) Shared Coordinates as Origin. You can observe this in the IFC file:


But what if you want to Export to IFC with Project coordinates (Revit origin), not Shared?

We want to do this because we have set up the import process from Tekla using this same Revit origin, here and particularly this:


1) Firstly, make a container RVT file with one Site Location, no shared coordinates. In other words, Project Base Point, Survey Point, and Revit Origin are all in one place.


2) Then, open the project you want to export, and link this ‘container’ file Origin-to-Origin

3) Transfer Project Standards:


4) Choose the Link you made, and Project Info (only):


5) Choose New Only (this will just bring in the uniquely named project location from the link):


6) Open Location dialog in Revit, under Site you will notice a new “Site“. Set it current with the Make Current button:


7) Now that the Project Origin (neutral coordinates) are set, you can export to IFC:


8) After Exporting, reset the coordinates back to what it was before with Make Current:


9) Optional: delete the IFC Export site definition if you don’t need it anymore…

I previously posted about a similar method, but it was a bit ‘destructive’, whereas the above process can be implemented into a live project more easily:
What Revit Wants: When and how to neutralize Survey coordinates for IFC export from Revit

Further reading:

Ever wondered how to install and use BIMserver to create your own IFC web viewer?

Sometimes I finish a blog post and think, what a mess…

That’s because I often sketch out things as I do them, on the fly. And so you end up with essentially a collection of notes. In any case, here are my notes on how I got BIMserver up and running on my workstation, so that I can view, merge and work with IFC files locally. I hope you can understand the fragments of thought below 🙂

The bimserver Java module will be limited by the Java version on your system. So, if you want to be able use big memory, you should be running a 64 bit Java engine.

Install JDK for 64 bit windows, such as from here:

Windows x64 187.31 MB jdk-8u77-windows-x64.exe

Download and Installation
Release 1.4.0-FINAL-2015-11-04 · opensourceBIM/BIMserver


Put the bimserver jar file in some logical place on your computer, it will create subfolders here.

Important Note! I discovered that bimserver doesn’t play nicely with file paths that have a whitespace character, so use underscores if you have to

Start by double clicking the JAR file – bimserver-1.4.0-FINAL-2015-11-04.jar

Then, tweak settings to your liking. Here are mine:


Click Start

Allow the BIMserver engine to initialize itself for a few moments, it will create a bunch of folders.

Once its ready, you might have to give it access through Windows Firewall


Click Launch Webbrowser, then fill out the login details:


Once logged in to the client in the browser, use Project – New Project, and give it a name.

You now have a space where you can upload, merge, view, query and validate IFC files.

To Merge IFC Files

  1. Add ‘sub projects’ for each IFC you want to merge
  2. Checkin a model to each subproject
  3. You can now view the 3D merged IFC model in your web browser by clicking on the top level ‘eye’ symbol and wait for Loading to complete
  4. Also, you can download the top level ‘merged’ project as a single IFC



To test your merged model, you can immediately create a New Project and Checkin your merged model.

Further notes
You can now create multi-tasked IFC geometry tasks, which look like this:


Sometimes they use lots of memory!


Keep in mind that this is essentially a web application. The ‘next level’ would be to set this up to run on your company webserver to share IFC models internally or to everyone via the cloud.

The source for the web viewer is here:
opensourceBIM/ Javascript client for Building Information Modelling, using open standards like IFC, BCF and BIMSie. Using Bootstrap, BIM Surfer, etc..

This video may be of interest:

IFC for Revit 2015 (v15.7):

IFC for Revit 2016 (v16.4):

New Export Functionality:
Append “(Type)” to all internal Revit type property sets, to avoid having multiple property sets with the same name assigned to the same IFC entity.
Changed how the classification code is parsed so that classifications can have brackets and colons in them.
“Extra Low” level of detail now applies to all faceted BRep geometry, allowing many more files to export without hitting the size limit.
If a userdefined property set contains the same property name more than once, take the last nonempty value (don’t duplicate the property name).
Rebar elements can generate up to 1024 consistent GUIDs for individual IfcReinforcementBars, up from 256.
(IFC4) Zones can now have a long name, set by the “ZoneLongName” shared parameter for nonMEP zones, and the “IfcLongName” parameter for MEP zones.

Export Bug Fixes:
Don’t create orphaned IfcStyledItems.
Don’t export invisible geometry in beams.
Export DirectShapes of Walls category.
Export elements with empty custom classification field values.
Floors exported as IfcSlabs correctly report if they are load bearing or not, using either the “LoadBearing” shared parameter or the Structural builtin parameter, in that order.
Improve performance in certain cases where we can’t create a valid tessellation for a face.
The “Use active view to generate geometry” option now works correctly.
(IFC4) Correct the orientation of some IfcAdvancedBRep faces.

New Import Functionality:
Import IfcProxy as Generic Models.

Import Bug Fixes:
Fix how the IFC GUID is set for certain elements.
Fix the orientation of some imported objects where part of the local placement needs to be calculated.
(IFC4) Read in some missing relations caused by “IsDefinedBy” split into 3 inverse attributes.

via email


Links below:

IFC for Revit 2015 (v15.6):

IFC for Revit 2016 (v16.3):

Update notes for IFC for Revit 2015 (v15.6):
– Added some minor export performance tweaks.
– Added IFC4 Design Transfer View as an option.  With this option, Revit will attempt to create IfcAdvancedBReps in some cases.
– The import log file now contains the importer version at the end.

New Export Functionality:
– Display the element id for each element as it is exported.
– Create IfcGroups for multiple IfcReinforcingBars created by one rebar element in Revit.
– (IFC4) Add support for ConicalFace and fix RevolvedFace for IfcAdvancedBRep.
– (IFC4) Reuse IfcCartesianPoints when exporting an IfcAdvancedBRep.

Export Bug Fixes:
– Associate some entities with IfcBuilding if they have no other spatial containment, or there are no levels.
– Correctly export DirectShapes of Ramp, Stairs, or certain MEP categories.
– Correctly relate IfcAssembly to IfcBuildingStorey in certain cases.
– Export some elements with geometry that couldn’t be correctly split into multiple solids.
– Fix crash in certain cases where we can’t create a valid tessellation for a face.
– Fix crash when exporting certain vertical roofs.
– Fix crash when exporting elements with no bounding box when splitting elements by level.
– Fix crash when exporting filled regions with invalid color definitions.
– Fix the name of IfcArbitraryClosedProfileDef entities.
– Never export curtain wall panels independent of their curtain walls.
– Remove invisible geometry when exporting families when exporting elements in the current view.
– (IFC4) Correct export of IfcMechanicalFastener.

New Import Functionality:
– Add support for extra currency types.
– Allow import of unbounded grid lines, with a warning and an arbitrary length.

Import Bug Fixes:
– The IfcSweptSurface “Position” attribute is now optional.