Most common mistakes of IFC export by newbies

There are some common mistakes that can be found from IFC models on a regular basis:

  • The geometrical objects does not belong to the spatial hierarchy of the model.
  • The profile of the objects is not defined with 2D-points as it should.
  • The GUID values are out of the valid range.

Please try to avoid these mistakes!

1 Like

Interesting subject…I don’t quite consider myself e newbie but…Can you please elaborat how can the GUID value be out of the valid range?
What causes this and how can this be avoided?

Or maybe a general explanation of how could these three important topics be avoided would be helpful to the newbies.

I think this is not the issue of newbies as end users (BIM experts)
This is the issue bSI and software vendors HAVE CREATED

And should solve these issues as soon as possible “IF DON’T WANT TO SEE PARALLEL ORGANIZATIONS IN THE DIGITAL BUILT ENVIRONMENT INDUSTRY”

@lassi.liflander can you elaborate on example how you’ve seen the objects not within the spatial hierarchy? As you know there are many ways for this to be incorrect in IFC :slight_smile:

It’d be good to see an example of the second mistake, as I haven’t seen this one before.

As for GUIDs, I’ve raised that the spec description of GUID generation doesn’t actually describe the current state of affairs. The GUID generation as currently implemented disobeys a lot of industry standards. It is not surprising people make mistakes. Perhaps this should be resolved:

@Moult The following is INCORRECT. The 3D points used instead of 2D points.
#189= IFCCARTESIANPOINT((22.662000,160.000000,0.000000));
#190= IFCCARTESIANPOINT((22.662000,190.000000,0.000000));
#191= IFCCARTESIANPOINT((32.662000,200.000000,0.000000));
#192= IFCCARTESIANPOINT((1162.662000,200.000000,0.000000));
#193= IFCCARTESIANPOINT((1172.662000,190.000000,0.000000));
#194= IFCCARTESIANPOINT((1172.662000,160.000000,0.000000));
#195= IFCCARTESIANPOINT((1168.662000,160.000000,0.000000));
#196= IFCCARTESIANPOINT((1164.662000,156.000000,0.000000));
#197= IFCCARTESIANPOINT((1164.662000,109.000000,0.000000));
#198= IFCCARTESIANPOINT((1168.662000,105.000000,0.000000));
#199= IFCCARTESIANPOINT((1172.683000,105.000000,0.000000));
#200= IFCCARTESIANPOINT((1172.991000,102.589000,0.000000));
#201= IFCCARTESIANPOINT((1190.009000,19.930000,0.000000));
#202= IFCCARTESIANPOINT((1195.324000,19.930000,0.000000));
#203= IFCCARTESIANPOINT((1194.662000,10.000000,0.000000));
#204= IFCCARTESIANPOINT((1184.662000,0.000000,0.000000));
#205= IFCCARTESIANPOINT((10.662000,0.000000,0.000000));
#206= IFCCARTESIANPOINT((0.662000,10.000000,0.000000));
#207= IFCCARTESIANPOINT((0.000000,19.930000,0.000000));
#208= IFCCARTESIANPOINT((5.315000,19.930000,0.000000));
#209= IFCCARTESIANPOINT((22.333000,102.589000,0.000000));
#210= IFCCARTESIANPOINT((22.641000,105.000000,0.000000));
#211= IFCCARTESIANPOINT((26.662000,105.000000,0.000000));
#212= IFCCARTESIANPOINT((30.662000,109.000000,0.000000));
#213= IFCCARTESIANPOINT((30.662000,156.000000,0.000000));
#214= IFCCARTESIANPOINT((26.662000,160.000000,0.000000));
#215= IFCCARTESIANPOINT((22.662000,160.000000,0.000000));
#216= IFCPOLYLINE((#189,#190,#191,#192,#193,#194,#195,#196,#197,#198,#199,#200,#201,#202,#203,#204,#205,#206,#207,#208,#209,#210,#211,#212,#213,#214,#215));
#217= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,‘B200V10_1200’,#216);

@ReD_CoDE Yes, this has nothing to do with the end users. This is mainly for software vendors that are not members of bSI, but are convinced they need to have an IFC export. There are many things bSI could do better, like to have validator for IFC files, to have better and more examples of the main concepts of IFCs, to have example implementation of the IFC export, to have better documentation, etc.

@agron If the first digit of the GUID is something else than 0,1,2 or 3, it is out of the range of GUID value range.