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...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.
Open a big IFC file
Re: Open a big IFC file
Re: Open a big IFC file
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.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...
Re: Open a big IFC file
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.
Also importIFC.open() and importIFC.insert() have gained an "only" parameter, that can be a list of IDs.
Re: Open a big IFC file
140Mb gentlemen! It takes almost half an hour and 6Gb of RAM, but it works...
Re: Open a big IFC file
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?
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?
Re: Open a big IFC file
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.saso wrote:Also, do I understand this correctly that part of the slow down is also because some shapes are still not supported
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).
Re: Open a big IFC file
Ok, thanks for the explanation, I probably had this impression from older versions...yorik wrote: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.saso wrote:Also, do I understand this correctly that part of the slow down is also because some shapes are still not supported
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).
Re: Open a big IFC file
It's not big but breaks the import as parametric Arch . Attached the file.
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.
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
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
Re: Open a big IFC file
It's gone ...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 ...
Re: Open a big IFC 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 not big but breaks the import as parametric Arch . Attached the file.
Rejoice! https://dl.dropboxusercontent.com/u/754 ... g_Arch.ifcbernd wrote:It's gone ...