File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -380,24 +380,27 @@ def calculate(
380380 import bonsai .bim .module .qto .calculator as calculator
381381
382382 unit_converter = SI2ProjectUnitConverter (ifc_file )
383- formula_functions = {}
383+ formula_functions : dict [ str , types . FunctionType ] = {}
384384
385385 for element in elements :
386386 obj = tool .Ifc .get_object (element )
387387 if not obj or obj .type != "MESH" :
388388 continue
389- results . setdefault ( element , {})
389+ element_results = {}
390390 for name , quantities in qtos .items ():
391- results [ element ]. setdefault ( name , {})
391+ qto_results = {}
392392 for quantity , formula in quantities .items ():
393393 if not formula :
394394 continue
395395 if not (formula_function := formula_functions .get (formula )):
396396 formula_function = formula_functions [formula ] = getattr (calculator , formula )
397397 if (value := formula_function (obj )) is not None :
398- results [element ][name ][quantity ] = unit_converter .convert (
399- value , Blender .functions [formula ].measure
400- )
398+ qto_results [quantity ] = unit_converter .convert (value , Blender .functions [formula ].measure )
399+ if qto_results :
400+ element_results [name ] = qto_results
401+ # Avoid adding empty qsets if nothing was calculated.
402+ if element_results :
403+ results [element ] = element_results
401404
402405
403406calculators = {"Blender" : Blender , "IfcOpenShell" : IfcOpenShell }
You can’t perform that action at this time.
0 commit comments