Pagina's op IkLeerBIM

maandag 24 november 2014

A tool to build Revit's IFC mapping tables

With this post I would like to share an Excel document, with which you can build the mapping tables that Revit can use when importing from, or exporting to IFC. It is still a bèta. You can use it or even change it, but at your own risk of course. And if you do so, I would love to know what your experiences are. The RevitGG is also using this tool to help build some parts for in the Dutch Revit Standard the DRS.


The Excel workbook is without macro's. But it does import the TXT files that Revit generates and later can reuse. You should overwrite the TXT files from the downloads with your own ones. Build new mapping tables in Excel and copy the cells you need and paste them in the specific TXT file. After saving these files you can use them and  import them back in Revit.

Why did I build something like this?
Well I really like working with Revit, but the way Revit wants us to map Categories and Parameters between Revit and IFC is just ... well ...  And in the end I'm pretty sure that these things will change in time. But for now, I wanted it to be fixed as good as I can. Besides starting a little conversation about a better way to facilitate these things. My Excel workbook can be a good starting point.

What does this Excel workbook do "better" than the native Revit way?
  • It has dropdown options to choose options that are relevant. I really want dropdown options with the IFC Parameters. And I don't want to look them up on the Building Smart site, or in a post on the sourceforge site for the IFC exporter for Revit.
  • It has direct links to the documentation on the site of Building Smart based on the chosen option. No. I'm not a native IFC speaker. I'm not even a native English speaker. (really) So I do need some help to know what I'm doing.
  • It has a few reference mapping tables, and also an option to fill in the blank subcategories just as the other subcategories So you can build your own 'standard' besides the one the Revit offers. Of course you can make every exception that you would like to make. This is possible because of the hierarchy in the formula as shown at the head of the Columns.
  • It is also possible to omit a group of categories
  • It has a building relation between the import table, the export table and the parameter mapping table. In a perfect world you want to import exactly what you exported.
  • It has a sheet where you are can do some research on the IFC structure. The purpose of this sheet is to find possible omissions in the IFC parameters that we use and those that we don't use, but perhaps should use. Just change cel K17 on the sheet IFC structure.
So overall it should be faster, gives more inside in IFC and the tables are related to each other.

So perfect!
Well almost. But it is a beta. And there are still some weird things.
  • This Workbook is based on IFC 4x0 make sure that it's supported or that you don't use IFC4x0 specific options or changed names.
  • The Parameter Mapping Sheet is a compleet list. So for the moment, you need to skip the rows in the TXT file that don't have a defined value. So you don't map to nothing or to zero. Furthermore, I build the Sheet as I think it should be. And based on the header of the example TXT file. But.. the only working files I have seen are much easier. It's more about adding specific Revit Parameters without adding them all, or using all the Schedules for export, rather than really mapping from Revit to real IFC specific parameters. A working parameter mapping TXT looks like: 
PropertySet:    GiveItAName    T    IfcBlaBlaType
RandomRevitParameter TextOrSomethingElse
etc.
  • Revit still has some hard coded mapping.
  • I made a drop down option with related IFC Types based on the chosen IFC Category, but the "Type" Column in the Revit's IFC Export options doesn't work when importing the TXT files. So the IfcExportType will be a better option if this one is important.
  • IFC has more categories and parameters than Revit uses right now. I'm not sure what to think of that. 
  • Some Families are still much better off by using the IFCExportAs parameter.
  • This workbook uses formulas instead of macro's. That's nice, but if you need more rows than the number of rows that i have build, you need to adjust the workbook. 
  • I also tried to use Named Ranges and indirect references for later adjustments, but there could be a slip of the pen somewhere.
But overall I'm quite happy with this beta tool. And I would like to share it with Revit users.
I also would try to start a little (open) conversation about making Revit even better.

Hope it helps and have fun.
Download

For Dutch speaking people there is a youtube movie of a RevitGG meeting where i demonstrate and explain this tool a little bit more. It's about 75min.



 


There will be updates in the text and the spreadsheet -it's a bèta remember-. So check out the latest version of the text or the spreadsheet if you have problems.
update / 26-11-2014

With the sheet "Fill in ParameterMapping" you can build:


 - "ParameterMappingTable.txt" wich should be placed in the folder where the export DLL is located. This will map the Common Pset between Revit and IFC
 - "DefaultUserDefinedParameterSets.txt" wich hasn't a specific location. You can select the file in Export Setting at the tab "Export property sets" This one will create your own User Defined Property Set - You can discus if this should be 'best practice'
You can read here some more on the SourceForge site:

The Sheet "Fill in ParameterMapping" is mainly based on the "ParameterMappingTable.txt". You can build a "DefaultUserDefinedParameterSets.txt" as shown in row 12: Choose a Revit Parameter and make sure that Column K is linked to the Columns M, N and O. See Cel K12 for an example formula.

You will see that this method will automatically create new rows in the spreadsheet.