diff --git a/src/Mod/Arch/ArchComponent.py b/src/Mod/Arch/ArchComponent.py
index 970088b054..bbd6c616c2 100644
--- a/src/Mod/Arch/ArchComponent.py
+++ b/src/Mod/Arch/ArchComponent.py
@@ -685,6 +685,9 @@ class Component:
if not obj.Shape.Faces:
return
import Drawing,Part
+ fmax = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").GetInt("MaxComputeAreas",20)
+ if len(obj.Shape.Faces) > fmax:
+ return
a = 0
fset = []
for i,f in enumerate(obj.Shape.Faces):
diff --git a/src/Mod/Arch/Resources/ui/preferences-arch.ui b/src/Mod/Arch/Resources/ui/preferences-arch.ui
index b032a0b89c..31dd1c4ca5 100644
--- a/src/Mod/Arch/Resources/ui/preferences-arch.ui
+++ b/src/Mod/Arch/Resources/ui/preferences-arch.ui
@@ -6,8 +6,8 @@
0
0
- 396
- 689
+ 428
+ 703
@@ -106,6 +106,46 @@
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ Do not compute areas for object with more than:
+
+
+
+ -
+
+
+ faces
+
+
+ 20
+
+
+ MaxComputeAreas
+
+
+ Mod/Arch
+
+
+
+
+
@@ -578,6 +618,11 @@
qPixmapFromMimeSource
+
+ Gui::PrefSpinBox
+ QSpinBox
+
+
Gui::PrefCheckBox
QCheckBox