buildingSMART Forums

COBie and IFC mapping

Some months ago I said COBie is not suitable today

Still you can follow COBie, because the industry still works based on COBie, especially COBie spreadsheet, but soon you will realize that you need to focus on FIM and AIM, and forget what COBie is

In case there is any misunderstanding, I would note that COBie deliverables are first and foremost delivered in an IFC file that validates with the COBie MVD. The assets included in this IFC file, by default, follow the asset and asset type lists shown in the COBie responsibility matrix. However, this may change should the client particularly require it for the asset management system.

I personally do not condone COBie to be delivered in a spreadsheet format for any large / complex / significant project. This is taken from the original publication by Bill East, where he says:

When people want to look at the COBie data directly, and they do not want to learn to read complex STEP file formats, they can use a translation of data into a spreadsheet.

He also says:

Why is COBie a spreadsheet? A

Given a large project and progressive owner, there will be sufficient overheads needed to provide a wide range of value-added services that may include the proprietary development of Facility Handover data sets. Most public projects are, however, relative simple, square buildings, completed on a shoestring budget with taxpayer funds. An open exchange format for facility handover data must, therefore, accommodate both the large custom buildings and small public buildings with the least common denominator of technology allowing the widest possible set of project stakeholders. COBie for large projects uses IFC-standard STEP and ifcXML formatted files. Small projects may exchange COBie data, displayed as spreadsheets, and directly update COBie data using these common spreadsheet programs.

Emphasis added is my own.

That said, an open, transparent, simple COBie IFC->Spreadsheet converter tool is very useful for quick auditing, even on large projects. The ability to view COBie data in a spreadsheet form is not an excuse for poor data quality in the originating IFC file, nor is it an excuse to omit other useful data that is present in the COBie MVD but not exposed in the spreadsheet … overall, it is still a very human-readable snapshot, which is invaluable.

For this reason, I am building this tool based on Bill East’s original intentions of how the spreadsheet snapshot would operate.

Please do not interpret COBie to be purely a spreadsheet. COBie is an MVD.

I admire COBie and Bill East’s work because it was one of the first practical attempts to build a (small) “Relational Information System” inspired from Charles Eastman’s efforts

Indeed, Bill East has tried to build an “efficient Information System”

Today, for FIM, for AIM, for BOM, for PM, for anything, you just need to extract data/information (especially objects/components) from IFC and control data/information exchange (rule checking)

I don’t talk about IFC and IFC-STEP (because some may be unhappy)

And at the end you will need these three :grinning::

  1. Material Template/Pass --> MaterialPass.org
  2. Product Template/Pass --> ProductPass.org
  3. Facility Template/Pass --> FacilityPass.org

The code for the COBie IFC->Spreadsheet extraction is now complete for all worksheets in the COBie spreadsheet template. The bug (https://github.com/IfcOpenShell/IfcOpenShell/issues/663) has now been closed. With this tool, you will now be able to take any IFC file (even one that hasn’t been especially created with the COBie MVD requirements - although of course it is ideal that it should be) and convert it into a COBie spreadsheet.

The tool will be integrated into Blender BIM, and also released as a standalone utility soon. I will mark this as solved.

I should note that it is based on the responsibility matrix, which according to Bill East is not authoritative, and in fact should follow the MVDxml. This means that the tool is not yet complete, and needs another round of review. However, it is a starting point.

An example output (with a bit of censorship) is shown here:

Well done Dion,

Now, focus on this and see your solution does this correctly? Most software can’t do this:

Also, add these six:
CreatedBy
CreatedOn
LastModifiedBy
LastModifiedOn

ModifiedBy
ModifiedOn

The spreadsheet data conversion is only as good as the input data available in the IFC file.

Most authoring software implement owner history poorly, to my understanding.

There is no need to add those six, as they already exist in the IFC file. Just because they don’t appear in the spreadsheet doesn’t mean it doesn’t exist.

In the future I will build a feature where you can add custom columns with your own mappings, and therefore you can, indeed, add those six yourself.

Both IFC and COBie spreadsheet are not “static” and most of the times, COBie spreadsheet doesn’t use just as an archive (which the input data just comes from IFC file)

For this reason “you have to have a mechanism to archive changes inside the spreadsheet”

IFC has IfcOwnerHistory yes, but as you mentioned nobody uses it and even bSI is thinking to drop it. But I think it’s useful, especially after ISO 19650 which mainly focuses on legal aspects, so owner and owner history becomes important

Also, take a look at IfcOwnerHistory it doesn’t have any “logic” to archive “all” changes, it just provides the last change

About the feature that adds custom columns, I think it would be really useful

I saw you work on an invaluable idea to be able to generate “custom MVDs = MicroMVDs”

Hello, Dion.
Is it already developed to test it?
I was talking with @jonm because we were testing his ggExcelIfc addin to generate COBie Spreadsheet, and he suggested me to ask you about your development.
Let me know.
Thanks!
D.

Hey @daviddelven - it is ready for testing. A few things to keep in mind:

  1. It follows the mapping in the responsibility matrix to the letter. It expects to find data in exact locations.
  2. The results are only as good as the IFC input. If the authoring program that produces the IFC is incapable of recording the data in the right places, the spreadsheet output will not give you “good” results.
  3. It is alpha software. It would be great to get people testing it! However, it is rather fresh so I expect bugs to be found. If your share the bugs, I can help fix them :slight_smile:

Which OS are you on? Have you got IfcOpenShell and Python already installed? If not, I can help package it for you for your particular OS.

Feel free to send me an email at dion@thinkmoult.com

Hi, Dion.

  1. Good.
  2. What we expect.
  3. That’s the point!

We are running W10 Home 64bits
IfcOpenShell and Phython not installed, yet.

Your help would be welcome…!

There is a plugin for the Polish BIM Vision IFC viewer/evaluator, called COBie Exporter, which is generating COBie spreadsheets from the IFC import, @daviddelven, it’s also in Spanish :slight_smile:

David, see you in Poland :slight_smile:

rob

1 Like

Hello, Rob

Thanks! We know it.
I only use english or INT versions.
I like the modular approach of BIM Vision, in general.

I hope to see you in Poland, too!

David

For now, we are trying to test BIMserver.org + COBie plugins.
We’ll see.

@daviddelven - I will package it for you tomorrow :slight_smile:

1 Like

I appreciate it, Dion!

@daviddelven - please see latest Windows build here: https://blenderbim.org/builds/

It is called cobie-191024-win.exe. It should be self explanatory - it requires a file called input.ifc in the same folder you are running the program from.

When run successfully, it should let you know, and give you an option to exit. However, being alpha software, it may run into bugs - if this is the case, please run it using Powershell on Windows, and that will give me debug information I can use to fix it. Ideally, also send me an email dion@thinkmoult.com or we can chat in real-time on IRC on the ##architect channel and send me your IFC file.

This tool essentially should do the same as what the BIMserver + COBie plugins does, with a few differences:

  1. Smaller, lighter, and easier to get started with. It does not depend on Java, it does not require integration with an entire BIMserver, so you can run it on Jenkins, any CI server, or as a hook called by Git, a Makefile, etc - it makes it very, very flexible.
  2. It outputs CSV, which makes it a bit more “open” for data parsing.
  3. It outputs a log which outputs exactly where data is missing in your IFC file.

In the future, I expect it to allow adding custom columns, check project specific requirements, and integrate with other tools like BIMTester, which can do human-language style IFC auditing, which can make it quite powerful, I believe. I also plan to integrate it into BlenderBIM to allow people to, within the BlenderBIM authoring tool, graphically query results, and fix the IFC data.

Edit: I think when packaged for Windows, it expects an IFC 2X3 file (although it actually can run on IFC4 too). This is something I need to resolve for Windows.

2 Likes

I like this warning method in process file:

    INFO:IFCtoCOBie:Starting conversion
    WARNING:IFCtoCOBie:An email address was not found for #14=IfcPerson($,'Azari','Ehsan',$,$,$,$,$)
    WARNING:IFCtoCOBie:An email address was not found for #16=IfcOrganization($,'No Organization',$,$,$)
    ERROR:IFCtoCOBie:No roles could be found for #4=IfcOwnerHistory(#20,#23,$,.ADDED.,$,$,$,1433835546)
    WARNING:IFCtoCOBie:A phone was not found for #14=IfcPerson($,'Azari','Ehsan',$,$,$,$,$)
    WARNING:IFCtoCOBie:A phone was not found for #16=IfcOrganization($,'No Organization',$,$,$)
    WARNING:IFCtoCOBie:An internal location was not found for #16=IfcOrganization($,'No Organization',$,$,$)
    WARNING:IFCtoCOBie:The address AddressLines seems to not exist for #20145=IfcPostalAddress($,$,$,$,$,$,$,$,$,$)
    WARNING:IFCtoCOBie:The address PostalBox seems to not exist for #20145=IfcPostalAddress($,$,$,$,$,$,$,$,$,$)
    WARNING:IFCtoCOBie:The address Town seems to not exist for #20145=IfcPostalAddress($,$,$,$,$,$,$,$,$,$)
    WARNING:IFCtoCOBie:The address Region seems to not exist for #20145=IfcPostalAddress($,$,$,$,$,$,$,$,$,$)
    WARNING:IFCtoCOBie:The address PostalCode seems to not exist for #20145=IfcPostalAddress($,$,$,$,$,$,$,$,$,$)
    WARNING:IFCtoCOBie:The address Country seems to not exist for #20145=IfcPostalAddress($,$,$,$,$,$,$,$,$,$)
    WARNING:IFCtoCOBie:An email address was not found for #14=IfcPerson($,'Azari','Ehsan',$,$,$,$,$)
    WARNING:IFCtoCOBie:An email address was not found for #16=IfcOrganization($,'No Organization',$,$,$) 

It’d be good if in the near future add an interface that the end-use be able to solve all these issues inside the tool

#14=IfcPerson($,'Azari','Ehsan',$,$,$,$,$)

For instance anytime user clicks on each attribute see the appropriate information and fill it out and/or choose from the Enum

1 Like

Run!
I’ll give you more feedback progressively.
*.csv turns the output into something rawer.
Thanks, Dion!

1 Like

How is the tool going, @daviddelven ? I’d love to hear feedback! (by the way, it outputs both CSV and XLSX to give you the option to choose which you prefer to work with).

On IFCWebServer there is a special server script to automate the process of exporting COBie out of IFC models.
The output is a HTML report with colors and links to the building elements.
You can see an example of the result at this link:

https://ifcwebserver.org/scripts/user1/results/IFC_to_COBie.html


The source code of this script can be found at :

https://ifcwebserver.org/scripts_catalog.rb
(you need at first to login as demo user ( username: user1, password: 123)

Any user can adjust and improve the code to fit his needs

I am not working at moement on this feature but I can support any one who is interested to use it

1 Like