From 217a67ddb224b4fcd8494f5a33c76b0384a5c0a9 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 13 Sep 2016 20:08:25 -0300 Subject: [PATCH] Arch: support for layer splitting function of ifcopenshell --- src/Mod/Arch/Resources/ui/preferences-ifc.ui | 20 ++++++++++++++++++++ src/Mod/Arch/importIFC.py | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/src/Mod/Arch/Resources/ui/preferences-ifc.ui b/src/Mod/Arch/Resources/ui/preferences-ifc.ui index 21a2c28a9..cba316bc8 100644 --- a/src/Mod/Arch/Resources/ui/preferences-ifc.ui +++ b/src/Mod/Arch/Resources/ui/preferences-ifc.ui @@ -248,6 +248,26 @@ + + + + + + Split walls made of multiple layers + + + Split multilayer walls + + + ifcSplitLayers + + + Mod/Arch + + + + + diff --git a/src/Mod/Arch/importIFC.py b/src/Mod/Arch/importIFC.py index 116c3c236..3af495357 100644 --- a/src/Mod/Arch/importIFC.py +++ b/src/Mod/Arch/importIFC.py @@ -126,6 +126,7 @@ def getPreferences(): global ROOT_ELEMENT, GET_EXTRUSIONS, MERGE_MATERIALS global MERGE_MODE_ARCH, MERGE_MODE_STRUCT, CREATE_CLONES global FORCE_BREP, IMPORT_PROPERTIES, STORE_UID, SERIALIZE + global SPLIT_LAYERS p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch") if FreeCAD.GuiUp and p.GetBool("ifcShowDialog",False): import FreeCADGui @@ -149,6 +150,7 @@ def getPreferences(): IMPORT_PROPERTIES = p.GetBool("ifcImportProperties",False) STORE_UID = p.GetBool("ifcStoreUid",True) SERIALIZE = p.GetBool("ifcSerialize",False) + SPLIT_LAYERS = p.GetBool("ifcSplitLayers",False) def explore(filename=None): @@ -354,6 +356,8 @@ def insert(filename,docname,skip=[],only=[],root=None): settings.set(settings.USE_WORLD_COORDS,True) if SEPARATE_OPENINGS: settings.set(settings.DISABLE_OPENING_SUBTRACTIONS,True) + if SPLIT_LAYERS and hasattr(settings,"APPLY_LAYERSETS"): + settings.set(settings.APPLY_LAYERSETS,True) sites = ifcfile.by_type("IfcSite") buildings = ifcfile.by_type("IfcBuilding") floors = ifcfile.by_type("IfcBuildingStorey")