@@ -190,19 +190,20 @@ def summarise_shapes(self, ifc, elements):
190190 shape = iterator .get ()
191191 element = ifc .by_id (shape .id )
192192 geometry = shape .geometry
193- shapes [element .GlobalId ] = {
194- "total_verts" : len (geometry .verts ),
195- "sum_verts" : sum (geometry .verts ),
196- "min_vert" : min (geometry .verts ),
197- "max_vert" : max (geometry .verts ),
198- "matrix" : tuple (shape .transformation .matrix .data ),
199- "openings" : sorted (
200- [o .RelatedOpeningElement .GlobalId for o in getattr (element , "HasOpenings" , []) or []]
201- ),
202- "projections" : sorted (
203- [o .RelatedFeatureElement .GlobalId for o in getattr (element , "HasProjections" , []) or []]
204- ),
205- }
193+ if geometry .verts :
194+ shapes [element .GlobalId ] = {
195+ "total_verts" : len (geometry .verts ),
196+ "sum_verts" : sum (geometry .verts ),
197+ "min_vert" : min (geometry .verts ),
198+ "max_vert" : max (geometry .verts ),
199+ "matrix" : tuple (shape .transformation .matrix .data ),
200+ "openings" : sorted (
201+ [o .RelatedOpeningElement .GlobalId for o in getattr (element , "HasOpenings" , []) or []]
202+ ),
203+ "projections" : sorted (
204+ [o .RelatedFeatureElement .GlobalId for o in getattr (element , "HasProjections" , []) or []]
205+ ),
206+ }
206207 if not iterator .next ():
207208 break
208209 return shapes
0 commit comments