Update shape.py

Following the discussion in Live Chat about length of all edges in a given geometry:
https://matrix.to/#/!ssOmSJysZpXBupsgjO:matrix.org/$0ZHjIFCtpwQl06xdGWlQ9ymsiKWpPuLMczVJnNYmN84?via=matrix.org&via=crossbach.de&via=infeeeee.duckdns.org
This commit is contained in:
VDobranov
2024-07-19 22:26:26 +05:00
committed by Thomas Krijnen
parent 3f3f3b6aff
commit e27980f746
@@ -730,3 +730,16 @@ def get_extrusions(element: ifcopenshell.entity_instance) -> list[ifcopenshell.e
else:
break
return extrusions
def get_total_edge_length(geometry: ShapeType) -> float:
"""Calculates the total length of edges in a given geometry.
:param geometry: Geometry output calculated by IfcOpenShell
:type geometry: geometry
:return: The total length of all edges in the geometry.
:rtype: float
"""
vertices = get_vertices(geometry)
edges = get_edges(geometry)
return sum([np.linalg.norm(vertices[e[0]] - vertices[e[1]]) for e in edges])