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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user