mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-17 05:52:33 +00:00
Make IfcDiff more forgiving when invalid geometry occurs. See #3755.
This commit is contained in:
+14
-13
@@ -190,19 +190,20 @@ class IfcDiff:
|
|||||||
shape = iterator.get()
|
shape = iterator.get()
|
||||||
element = ifc.by_id(shape.id)
|
element = ifc.by_id(shape.id)
|
||||||
geometry = shape.geometry
|
geometry = shape.geometry
|
||||||
shapes[element.GlobalId] = {
|
if geometry.verts:
|
||||||
"total_verts": len(geometry.verts),
|
shapes[element.GlobalId] = {
|
||||||
"sum_verts": sum(geometry.verts),
|
"total_verts": len(geometry.verts),
|
||||||
"min_vert": min(geometry.verts),
|
"sum_verts": sum(geometry.verts),
|
||||||
"max_vert": max(geometry.verts),
|
"min_vert": min(geometry.verts),
|
||||||
"matrix": tuple(shape.transformation.matrix.data),
|
"max_vert": max(geometry.verts),
|
||||||
"openings": sorted(
|
"matrix": tuple(shape.transformation.matrix.data),
|
||||||
[o.RelatedOpeningElement.GlobalId for o in getattr(element, "HasOpenings", []) or []]
|
"openings": sorted(
|
||||||
),
|
[o.RelatedOpeningElement.GlobalId for o in getattr(element, "HasOpenings", []) or []]
|
||||||
"projections": sorted(
|
),
|
||||||
[o.RelatedFeatureElement.GlobalId for o in getattr(element, "HasProjections", []) or []]
|
"projections": sorted(
|
||||||
),
|
[o.RelatedFeatureElement.GlobalId for o in getattr(element, "HasProjections", []) or []]
|
||||||
}
|
),
|
||||||
|
}
|
||||||
if not iterator.next():
|
if not iterator.next():
|
||||||
break
|
break
|
||||||
return shapes
|
return shapes
|
||||||
|
|||||||
Reference in New Issue
Block a user