Open a big IFC file

This forum section is only for IFC-related issues
User avatar
yorik
Founder
Posts: 13665
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Open a big IFC file

Post by yorik »

bernd wrote: and what I use quite often is the opposite of the skip list, a list with ids and only these ids will be imported. Also only a few lines of code.
Yes I'm thinking about that too... How for example, if you import a file as compounds, you could delete one of the floors, and reimport it, this time as full arch objects. We could add an "include" list (contrary of the skip list), and a special case that if one of the IDs in hat list is a site, building or floor, then its children get imported too...
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Open a big IFC file

Post by bernd »

yorik wrote:
bernd wrote: We could add an "include" list (contrary of the skip list), and a special case that if one of the IDs in hat list is a site, building or floor, then its children get imported too...
:D Exactly what I've been thinking off when rockn starts this thread ! Due to Femstuff I did not to try extending the include list I've been running on my FreeCAD.
User avatar
yorik
Founder
Posts: 13665
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Open a big IFC file

Post by yorik »

Ok the changes are in! Settings to play with are in Preferences->Import/Export->IFC
Also importIFC.open() and importIFC.insert() have gained an "only" parameter, that can be a list of IDs.
User avatar
yorik
Founder
Posts: 13665
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Open a big IFC file

Post by yorik »

140Mb gentlemen! It takes almost half an hour and 6Gb of RAM, but it works...
huge-ifc.jpg
huge-ifc.jpg (76.55 KiB) Viewed 2356 times
User avatar
saso
Veteran
Posts: 1924
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Open a big IFC file

Post by saso »

I should really find some time to try this new options, looking great!

Few thoughts I had on this... It is actually this days quite a common practice to use the shared IFC model only as a reference and rebuild your own model from it (in a different tool), but I find it great to have in FC all this different options so the user can chose and decide what and how he wants work with IFC.

Also, do I understand this correctly that part of the slow down is also because some shapes are still not supported, so instead of importing a more clean shape of an object it gets triangulated? So if in the future some of this shapes would get supported we would automatically get also some speed improvements (I understand some shapes will always stay like that)?

And, as I see we use only one core, would it be possible to get some multi-core support in to this? :|
User avatar
yorik
Founder
Posts: 13665
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Open a big IFC file

Post by yorik »

saso wrote:Also, do I understand this correctly that part of the slow down is also because some shapes are still not supported
No, actually IfcOpenShell does one of the best jobs in the whole industry at recreating shapes from IFC... So far I've never seen an unsupported shape.

For export it is a different matter, though. But nothing gets triangulated on import, unless it is already triangulated in the IFC file (then it's the fault of the application that did the export).
User avatar
saso
Veteran
Posts: 1924
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Open a big IFC file

Post by saso »

yorik wrote:
saso wrote:Also, do I understand this correctly that part of the slow down is also because some shapes are still not supported
No, actually IfcOpenShell does one of the best jobs in the whole industry at recreating shapes from IFC... So far I've never seen an unsupported shape.

For export it is a different matter, though. But nothing gets triangulated on import, unless it is already triangulated in the IFC file (then it's the fault of the application that did the export).
Ok, thanks for the explanation, I probably had this impression from older versions... :oops:
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Open a big IFC file

Post by bernd »

It's not big but breaks the import as parametric Arch . :shock: :o 8-) Attached the file.

Code: Select all

le contour contient 4 aretes
Traceback (most recent call last):
  File "C:\Program Files\FreeCAD_0.16.4854_x64_dev_bin\FreeCAD_0.16.4854_x64_dev_bin\Mod\Arch\ArchRoof.py", line 560, in execute
    self.calcEave(i)
  File "C:\Program Files\FreeCAD_0.16.4854_x64_dev_bin\FreeCAD_0.16.4854_x64_dev_bin\Mod\Arch\ArchRoof.py", line 258, in calcEave
    eave = DraftGeomUtils.edg(FreeCAD.Vector(pt0Eave1[0]),FreeCAD.Vector(pt1Eave1[0]))
<type 'exceptions.IndexError'>: list index out of range
le contour contient 4 aretes
Traceback (most recent call last):
  File "C:\Program Files\FreeCAD_0.16.4854_x64_dev_bin\FreeCAD_0.16.4854_x64_dev_bin\Mod\Arch\ArchRoof.py", line 560, in execute
    self.calcEave(i)
  File "C:\Program Files\FreeCAD_0.16.4854_x64_dev_bin\FreeCAD_0.16.4854_x64_dev_bin\Mod\Arch\ArchRoof.py", line 258, in calcEave
    eave = DraftGeomUtils.edg(FreeCAD.Vector(pt0Eave1[0]),FreeCAD.Vector(pt1Eave1[0]))
<type 'exceptions.IndexError'>: list index out of range
Attempting to rebuild  
Success
le contour contient 4 aretes
Traceback (most recent call last):
  File "C:\Program Files\FreeCAD_0.16.4854_x64_dev_bin\FreeCAD_0.16.4854_x64_dev_bin\Mod\Arch\ArchRoof.py", line 560, in execute
    self.calcEave(i)
  File "C:\Program Files\FreeCAD_0.16.4854_x64_dev_bin\FreeCAD_0.16.4854_x64_dev_bin\Mod\Arch\ArchRoof.py", line 258, in calcEave
    eave = DraftGeomUtils.edg(FreeCAD.Vector(pt0Eave1[0]),FreeCAD.Vector(pt1Eave1[0]))
<type 'exceptions.IndexError'>: list index out of range
Attempting to rebuild  001
Success
le contour contient 4 aretes
Traceback (most recent call last):
  File "C:\Program Files\FreeCAD_0.16.4854_x64_dev_bin\FreeCAD_0.16.4854_x64_dev_bin\Mod\Arch\ArchRoof.py", line 560, in execute
    self.calcEave(i)
  File "C:\Program Files\FreeCAD_0.16.4854_x64_dev_bin\FreeCAD_0.16.4854_x64_dev_bin\Mod\Arch\ArchRoof.py", line 258, in calcEave
    eave = DraftGeomUtils.edg(FreeCAD.Vector(pt0Eave1[0]),FreeCAD.Vector(pt1Eave1[0]))
<type 'exceptions.IndexError'>: list index out of range
OS: Windows 7
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.4854 (Git)
Branch: master
Hash: 59e45e0ae9813ec7dffb2e3aadb7175f311d28ee
Python version: 2.7.8
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17

BTW: Do you guys recongnize the path names version info. It runs on Windows too for me. Did not know my laptop is that poor. Import is faster by nearly factor 5 on my windows computer at work.

BTW2: Forgot to say. Yorik, that new ifc stuff is just great.
Attachments
roof.ifc
(9.78 KiB) Downloaded 84 times
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Open a big IFC file

Post by bernd »

yorik wrote:I am playing with the 210_King_Arch file linked above, exported it to IFC from Revit (with the opensource exporter): https://dl.dropboxusercontent.com/u/754 ... g_Arch.ifc . The IFC file weights 25Mb, which is a decent size for testing. It opens correctly in IfcPlusPlus but with many errors ...
It's gone ... :cry:
User avatar
yorik
Founder
Posts: 13665
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Open a big IFC file

Post by yorik »

bernd wrote:It's not big but breaks the import as parametric Arch . :shock: :o 8-) Attached the file.
Hm yes there is a problem with the new roof tool... It's base object can be used either "as is", or only a facet from it to build roofs on top of it. I added a little code that tries to figure out if the given shape must be used as a whole or not, but it is not very solid... I'll look at this one.
bernd wrote:It's gone ... :cry:
Rejoice! https://dl.dropboxusercontent.com/u/754 ... g_Arch.ifc
Post Reply