BIM: HorizontalArea prop did not detect islands

Forum topic:
https://forum.freecad.org/viewtopic.php?t=95973

This was fixed by using `Part::FaceMakerCheese`.
This commit is contained in:
Roy-043
2025-04-01 18:16:26 +02:00
committed by Chris Hennes
parent 09f71cb40d
commit 681d056073

View File

@@ -1028,7 +1028,7 @@ class Component(ArchIFC.IfcProduct):
for f in fset:
try:
import TechDraw
pf = Part.Face(DraftGeomUtils.findWires(TechDraw.project(f,FreeCAD.Vector(0,0,1))[0].Edges))
pf = Part.makeFace(DraftGeomUtils.findWires(TechDraw.project(f,FreeCAD.Vector(0,0,1))[0].Edges), "Part::FaceMakerCheese")
except Part.OCCError:
# error in computing the areas. Better set them to zero than show a wrong value
if obj.HorizontalArea.Value != 0:
@@ -1037,10 +1037,10 @@ class Component(ArchIFC.IfcProduct):
if hasattr(obj,"PerimeterLength"):
if obj.PerimeterLength.Value != 0:
obj.PerimeterLength = 0
return
else:
pset.append(pf)
if pset:
self.flatarea = pset.pop()
for f in pset: