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")