Fix deep purge of unit when converting units and fix bug where unit was removed if map unit was the same as the project unit

This commit is contained in:
Dion Moult
2024-07-12 22:48:23 +10:00
parent c79e490d6d
commit 04365053a8
2 changed files with 21 additions and 2 deletions
@@ -853,8 +853,9 @@ def convert_file_length_units(ifc_file: ifcopenshell.file, target_units: str = "
},
)
file_patched.remove(old_length)
unit_assignment = get_unit_assignment(file_patched)
unit_assignment.Units = tuple([new_length, *unit_assignment.Units])
unit_assignment.Units = [new_length, *(u for u in unit_assignment.Units if u.UnitType != new_length.UnitType)]
if not file_patched.get_total_inverses(old_length):
ifcopenshell.util.element.remove_deep2(file_patched, old_length)
return file_patched