IFC unreadable

Hi Support / GG,

Im working on Rhino 7,
with GG version:
ggIFC.gha (4.5 MB)
This is the last supported version that Shapediver accepts. Im running Shapediver in their new Beta.

I constructed a simple grid, which I would like to output as an .ifc:
IFc authoring.gh (36.6 KB)

When I download my file from shapediver, it returns as:

#22= IFCPROJECT(‘3$GY0DnEL3895ORaIpRSeC’,#20,'Moondoor Grid ',,,,,(#116),#23);
#14= IFCSITE(‘1EDsZCYpDANAHdWv61Qrh8’,#20,‘Grasshopper Site’,,,#13,,,.ELEMENT.,,,0.0,,);
#28= IFCBUILDING(‘1ccMY0z25CYB1J6poVeRnR’,#20,‘Grasshopper Building’,‘GH Building’,,#32,,‘GH Building’,.ELEMENT.,0.0,0.0,#30);
#115= IFCGRID(‘0LVNug$gX9aBjHVZuf8Fd7’,#20,'Moondoor Grid ',,,#124,#123,(#36,#40,#44,#48,#52,#56,#60,#64,#68,#72),(#76,#80,#84,#88,#92,#96,#100,#104,#108,#112),$);

Then when I try to open it with lets say Solibri Anywhere or in Rhino, in doesnt want to load.
In Solibri I get the error:

I notice other example .ifc files have some additional lines at the top compared to my output, including the ‘‘ISO-10303-21’’ line.

Do you have any explanation what my .IFC file is missing, how I can add it using GeometryGym, and/ or any pages where I can read and learn how to do this?

Best, Thomas Broos
Moondoor B.V., Amsterdam

Hi Thomas,

Thanks for posting. I’ve attached below your script with an adjustment. An IFC file has requirements about having a header, footer etc. Objects need multiple lines to serialize.
Our plugins assemble a background database, so it’s a little counter intuitive from typical grasshopper, but you don’t have to wire active elements into a single collector. We have a specific stream component that can output the contents of the IFC file to be published using shape diver.

I opened the generated IFC file in solibri without error, although I’m not sure it renders curve objects such as grids so you might not see the contents. BimVision does show them.

Let me know if it doesn’t make sense or if you have problems, questions or suggestions.


IFc authoring.gh (40.9 KB)

Thank you Jon for the adjustment and pointing this out!

Best, Thomas

Hi Jon,

I have a followup question. This worked well. I adjusted the file with the ‘ggIFC Stream’. Afterwards I uploaded the file to Shapediver, iFramed it to my website and to my excitedment, the first IFC came out correctly (Solibri has an extra button to turn grids on and off). You can access the result at Test environment

However, the next IFC I generated, came out the same as the first one. So it seams it doesnt ‘update’ in the way I would want to. I also asked Shapediver for help, but their download component seems to work fine.

Could you tell me more about the ggIFC Stream component? Also, do you think I am correct in assuming that’s where the issue lies? Hope you can help.

Best, Thomas

20211224 Moondoor grid maker clustered.gh (82.5 KB)

PS: When reading Geometry gym export ifc using usertext data as ifcProperties I notice that also my streamed IFC file seems to get bigger and bigger, Although I also notice sometimes it ‘skips’ a few lines. Unless as you suggested I close and open it again. This is however no such command to give Shapediver.

Thought I’d add this.

Hi Thomas,

Thanks for posting. I might need some more help to try and troubleshoot.
I’ve taken a quick look at the gh script, it looks fine.
You’ll note in the header of the generated ifc file (open it in notepad or refer gh text panel), a time stamp is included, /* time_stamp */ ‘2021-12-24T10:41:48’,

Note that if I download a file from your test environment, it’s from December last year. Something is amiss there, and the streamed data isn’t being revised, hence the same file. If you use csdiff (or some other text comparison tool), you can see there is no difference in the files, including the time stamp.

I tested in the latest version of the plugin, I haven’t downgraded to the old version shape diver uses, but if I move a slider in your gh script, I can see the streamed text panel changing with each revision. Do you see this with the older version of the ggIFC plugin?

With respect to increasing file sizes, this suggests data not being expired correctly (if files always increase). Note that I certainly have improved/fixed this over the past year or two, so the version of the plugin on shapediver might be problematic. If you reduce the number of gridlines, I would expect a smaller ifc file. It’s ok to have gaps in the line numbering. Note that creating an IFC file in grasshopper is a little complicated than the typical immutable objects generated in grasshopper. There are multiple relationships an object can have in IFC, not a simple parent-child in a one way hierarchy that GH wires represent. I’m still considering if a top-down or bottom up approach can work (particularly if details of GH2 emerge) but it’s part of the reason that the stream component is in isolation (without an upstream dependency on all components that generate the IFC data set).
I do see a reduction in the file with latest build, and I don’t identify any “obsolete” data that persists.

Sorry this isn’t more helpful, let me know your thoughts and observations.