Autodesk® Revit® is perfectly capable of exporting any kind of geometry to Industry Foundation Classes (IFC), without the loss of any geometry.
Revit is perfectly capable of importing and translating an IFC model to native Revit geometry.
With that, the entire Open BIM versus Closed BIM debate does not exist.
We have two major players in the BIM-scene here: Revit and ArchiCAD. One of the major points of discussion for every firm has been the (supposed) lack of IFC compatibility with Revit.
I know that IFC does not (yet) play a major role in Autodesk’s home country, the US. But in other parts of the world it does. Following other countries, the Dutch Governmental Building Agency has issued the use of IFC as a deliverable for BIM projects in certain categories. Whilst the mandatory use of IFC is now limited to major Design and Build contracts, it is expected that this will evolve very fast. So this makes one wonder: where DOES Revit stand in all this?
If I listen to the OpenBIM consortium, Revit’s handling of IFC has always been and will always be dramatic. Most often heard reason: “Autodesk seeks world dominance with the rvt format just like they established with the dwg format.”
I’m not quite sure why this is a bad thing, though. Does this not always happen with a new (software) technology? Look at Office, PDF, Java, Photoshop, iOS, Facebook Likes, and so on. They all sought to dominate the world in their own market and succeeded pretty well at it. What’s the problem? New companies emerge, they take the idea and make it better or cheaper. Or they come up with a brand new revolutionary concept that in its turn will seek world dominance. That’s how innovation works in my book.
But it is also completely beside the point. Every commercial company in its right mind should seek world dominance. It’s their reason of existence. And it does not mean that with that, IFC is not properly supported by Autodesk.
Likewise, I’m not sure whether IFC is “the future” or not. I guess it depends on the way you want to use it. If used as our government wants—as a container for all geometry and the most important properties only—I think it already works decently.
If you want to transfer other stuff for use in complex calculations and analysis, in my humble opinion it will fail miserably. Why? Basically you can compare it with Google Translate. IFC has a similar growth path.
A few years back Revit would produce IFC files with horrible errors, weird translation mix-ups, and so on, just as Google Translate did.
As more development came, Google Translate got better. It now is pretty decent at translating basic languages, IF you use simple grammar and sentences. Not all languages work equally well (Dutch, for instance, seems to be pretty tricky), but at least you will understand the meaning of the translation and it will be right to the degree that the errors stand out and can be corrected. I think that current versions of all modeling software have come to that point.
But you will always know the difference between a native speaker and a programmatic translation based on a set of rules. There is no way either Google Translate or IFC is ever going to capture all the finesses of a complex language, whether it’s human or computer code.
During a session with one of my clients, I got fed up with the ongoing debate about whether or not it is possible to do a decent export or import so I decided to spend a few days to look for myself. I asked for, and got, a few of the most annoying pitfalls of Revit’s IFC handling.
- Revit doesn’t have IFC parameters
- IFC Export: half the geometry is lost or gets tossed in the proxy (IFC’s lost & found bin)
- IFC Export: there’s no way to overrule general settings
- IFC Export: there’s no way to export partial models
- IFC Import: everything just gets tossed in the Generic Model category
- IFC Import: there’s no more parametric intelligence after an import
Revit Doesn't Have IFC Parameters
This one had me stumped for a long time, too. Why is there no connection between Revit parameters and properties and IFC parameters? Turns out there is, at multiple levels.
First off, there’s the hard-coded connection. Select a Wall. Basically every hard-coded parameter is an IFC parameter. Works wonderfully on export, just not on import.
Secondly, there is a shared parameter file created by Autodesk and published here: http://tinyurl.com/c5r8ha2. There is even a template file to use when working with IFC with all those parameters preloaded. So one can create Revit content with use of those IFC parameters.
I just don’t get why the geniuses at Autodesk putting together the ootb content didn’t think it worth it to ship with Revit.
IFC Export: Half the Geometry Is Lost or Dumped in Proxy
I created a simple model with some known problematic issues:
- Wall sweeps and fascias
- Slab edges
- Existing buildings modeled as a mass
Exporting this to IFC (Revit > IFC > Export) using the Revit standard settings leaves us with Figure 2.
- No mass
- Sweeps, fascia, and slab edges are exported into the proxy
- All materials are gone
How Is This Handled within Revit?
In the Export options (Revit > Export > Export Options > IFC Options) there’s a map defined to export different categories from Revit to IFC. In Figure3, it shows the standard export option for Masses set to “Not Exported.” No wonder the mass isn’t present in the ifc-file. Luckily, Revit lets us define our own mapping and save it as a separate file. All you need to do is go carefully through all your categories and map them to a specific IFC category.
For those of us who need to find out which categories you can use, there’s a complete list at the Revit Wikihelp page (http://tinyurl.com/d95g9gd).
IFC Export: There’s No Way to Overrule General Settings
Partly right. A Revit wall will always be an ifcWall. There’s no way to overrule that, and why should you? If it’s a wall, it should be modeled as a wall. And it should be exported as a wall. Period.
However, there is a way to override an elements export class by setting two shared parameters from the Autodesk IFC Shared Parameter file:
IfcExportAs > Specify the desired IFC class override. You can even use the DontExport entity name in the IFC class table to prevent a certain element from exporting to IFC.
IfcExportType > Specify the desired IFC type override.
There are a few pitfalls, though.
- This only works on component or in-place families, not on system families. Which is both good (why would one want to export a wall as anything but a wall?) and bad (for instance, a Wall Sweep can be a lot of different things).
- This only works on family types, not instances.
- You need to add the Shared Parameters to the families themselves. Simply adding them to the project isn’t enough. Open the family, add the shared parameters, and reload. You can set them to the desired value in the project.
IFC Import: Everything Just Gets Tossed into the Generic Model Category
I can be short about this one. Just as with exporting an IFC, there is a map. What IFC category goes where: it is true that the standard import map basically puts everything in the Generic Model category, except for walls, floors, roofs, ceilings, doors, and windows. But just as with the export map, you can adjust this to your own needs.
You can find the map under Revit > Open > IFC Options (see Figure 4).
IFC Import: There’s No More Parametric Intelligence after an Import
Well, no, there isn’t. And frankly, I think there shouldn’t be because IFC is not meant to work that way. When you transfer models with IFC, you’re getting somebody else’s model, somebody else’s work. You don’t need to adjust any parameters. If you want to do that, don’t work with IFC. Work with the same software.
Having said that, I do think that conversion on import could be better. Parameter values for hard-coded parameters such as height and width should be added from the IFC import. After all, the dimensions are known in the IFC file (Figure 5) but aren’t transferred to the corresponding parameters in Revit (Figure 6). I can understand that parameters aren’t tied to geometry anymore, but now it’s not even possible to schedule overall dimensions.
So are Revit and IFC a match made in heaven? Heck no! There’s still much to desire. A lot of stuff just doesn’t work, especially when it comes to importing IFC models. Basically, Revit lets you import an IFC model and use it as a linked file. Other than that, it’s pretty much useless. More parameter values should be mapped, such as the overall dimensions shown in this article, especially if you realize that it can be done: select a non-structural wall, set it to structural, export to IFC. After this, open the IFC in Revit and you will find that the Revit parameter for structural usage is still perfectly matched.
Importing gets slightly better when you use a file with the IFC parameters preloaded as a template especially when it comes to working with software other than Revit. But still, it’s necessary to replace all non-system families if you want to actually do something with the import.
Exporting is a different story. Overall, exporting IFCs can be pretty much customized to your needs and works rather well. Here, too, there are glitches. One needs to be very careful with defining project coordinates for instance. Elements can magically relocate themselves on a completely random base. Also, IFC doesn’t work well with certain features such as attached walls and edited profiles.
But these are issues you come across on other platforms, too, even the ones “specialized” in IFC and OpenBIM. So I’m guessing that’s an IFC problem, not Revit-related. In fact, I asked a few of the major leading Dutch architectural firms for their honest opinions of ArchiCAD and IFC. Would they submit IFC models as part of the deliverable documents to their clients without very thoroughly checking them? For all companies, the answer was an overwhelming, “Are you insane? Of course not! Only native documents get submitted.”
I’m guessing that’s my major point of pain when it comes to IFC in a BIM workflow. There’s no guarantee (yet) that it’s 100 percent, no matter which modeling software one uses. But it’s here, it’s reality, it’s mandatory (sometimes), and from where I’m standing, Revit does a pretty decent job in exporting them.
Martijn de Riet is a self-employed BIM Consultant from the Netherlands, working with Revit since version 5.1. Martijn has a bachelor degree in Building Science. After his study he started his own engineering firm working for contractors, architects and private clients. Starting 2007 his company transformed into a full-time BIM consultancy service. At the moment, Martijn's clients vary from mid-sized architectural firms to the largest Dutch general contractor and MEP engineering firms, with a focus on specific corporate solutions, design, and implementations of Revit and BIM workflows. Martijn is a member of the Dutch Revit User Group and currently working on creating a Master Template and library. He provides lectures for companies, technical universities, seminars and such on a regular basis.