mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-11 22:31:55 +00:00
No need to specify SI unit names as they can be derived from the unit type
This commit is contained in:
@@ -24,9 +24,9 @@ def assign_scene_units(ifc, unit):
|
|||||||
|
|
||||||
if unit.is_scene_unit_metric():
|
if unit.is_scene_unit_metric():
|
||||||
prefix = unit.get_scene_unit_si_prefix()
|
prefix = unit.get_scene_unit_si_prefix()
|
||||||
lengthunit = ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", name=length_name, prefix=prefix)
|
lengthunit = ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix=prefix)
|
||||||
areaunit = ifc.run("unit.add_si_unit", unit_type="AREAUNIT", name=area_name, prefix=prefix)
|
areaunit = ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix=prefix)
|
||||||
volumeunit = ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", name=volume_name, prefix=prefix)
|
volumeunit = ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", prefix=prefix)
|
||||||
else:
|
else:
|
||||||
lengthunit = ifc.run("unit.add_conversion_based_unit", name=length_name)
|
lengthunit = ifc.run("unit.add_conversion_based_unit", name=length_name)
|
||||||
areaunit = ifc.run("unit.add_conversion_based_unit", name=area_name)
|
areaunit = ifc.run("unit.add_conversion_based_unit", name=area_name)
|
||||||
@@ -68,7 +68,7 @@ def add_monetary_unit(ifc, unit):
|
|||||||
|
|
||||||
|
|
||||||
def add_si_unit(ifc, unit, unit_type=None):
|
def add_si_unit(ifc, unit, unit_type=None):
|
||||||
result = ifc.run("unit.add_si_unit", unit_type=unit_type, name=unit.get_si_name_from_unit_type(unit_type))
|
result = ifc.run("unit.add_si_unit", unit_type=unit_type)
|
||||||
unit.import_units()
|
unit.import_units()
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|||||||
@@ -83,10 +83,6 @@ class Unit(blenderbim.core.tool.Unit):
|
|||||||
return
|
return
|
||||||
return props.length_unit.replace("METERS", "")
|
return props.length_unit.replace("METERS", "")
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def get_si_name_from_unit_type(cls, unit_type):
|
|
||||||
return ifcopenshell.util.unit.si_type_names.get(unit_type, None)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def import_unit_attributes(cls, unit):
|
def import_unit_attributes(cls, unit):
|
||||||
def callback(name, prop, data):
|
def callback(name, prop, data):
|
||||||
|
|||||||
@@ -26,17 +26,15 @@ class TestAssignSceneUnits:
|
|||||||
unit.get_scene_unit_name("length").should_be_called().will_return("name")
|
unit.get_scene_unit_name("length").should_be_called().will_return("name")
|
||||||
unit.get_scene_unit_si_prefix().should_be_called().will_return("prefix")
|
unit.get_scene_unit_si_prefix().should_be_called().will_return("prefix")
|
||||||
ifc.run(
|
ifc.run(
|
||||||
"unit.add_si_unit", unit_type="LENGTHUNIT", name="name", prefix="prefix"
|
"unit.add_si_unit", unit_type="LENGTHUNIT", prefix="prefix"
|
||||||
).should_be_called().will_return("lengthunit")
|
).should_be_called().will_return("lengthunit")
|
||||||
|
|
||||||
unit.get_scene_unit_name("area").should_be_called().will_return("name")
|
unit.get_scene_unit_name("area").should_be_called().will_return("name")
|
||||||
ifc.run("unit.add_si_unit", unit_type="AREAUNIT", name="name", prefix="prefix").should_be_called().will_return(
|
ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix="prefix").should_be_called().will_return("areaunit")
|
||||||
"areaunit"
|
|
||||||
)
|
|
||||||
|
|
||||||
unit.get_scene_unit_name("volume").should_be_called().will_return("name")
|
unit.get_scene_unit_name("volume").should_be_called().will_return("name")
|
||||||
ifc.run(
|
ifc.run(
|
||||||
"unit.add_si_unit", unit_type="VOLUMEUNIT", name="name", prefix="prefix"
|
"unit.add_si_unit", unit_type="VOLUMEUNIT", prefix="prefix"
|
||||||
).should_be_called().will_return("volumeunit")
|
).should_be_called().will_return("volumeunit")
|
||||||
|
|
||||||
ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit")
|
ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit")
|
||||||
@@ -104,8 +102,7 @@ class TestAddMonetaryUnit:
|
|||||||
|
|
||||||
class TestAddSIUnit:
|
class TestAddSIUnit:
|
||||||
def test_run(self, ifc, unit):
|
def test_run(self, ifc, unit):
|
||||||
unit.get_si_name_from_unit_type("unit_type").should_be_called().will_return("name")
|
ifc.run("unit.add_si_unit", unit_type="unit_type").should_be_called().will_return("unit")
|
||||||
ifc.run("unit.add_si_unit", unit_type="unit_type", name="name").should_be_called().will_return("unit")
|
|
||||||
unit.import_units().should_be_called()
|
unit.import_units().should_be_called()
|
||||||
assert subject.add_si_unit(ifc, unit, unit_type="unit_type") == "unit"
|
assert subject.add_si_unit(ifc, unit, unit_type="unit_type") == "unit"
|
||||||
|
|
||||||
|
|||||||
@@ -148,12 +148,6 @@ class TestGetSceneUnitSIPrefix:
|
|||||||
assert subject.get_scene_unit_si_prefix() is None
|
assert subject.get_scene_unit_si_prefix() is None
|
||||||
|
|
||||||
|
|
||||||
class TestGetSINameFromUnitType:
|
|
||||||
def test_run(self):
|
|
||||||
for key, value in ifcopenshell.util.unit.si_type_names.items():
|
|
||||||
assert subject.get_si_name_from_unit_type(key) == value
|
|
||||||
|
|
||||||
|
|
||||||
class TestImportUnitAttributes(NewFile):
|
class TestImportUnitAttributes(NewFile):
|
||||||
def test_importing_derived_units(self):
|
def test_importing_derived_units(self):
|
||||||
ifc = ifcopenshell.file()
|
ifc = ifcopenshell.file()
|
||||||
|
|||||||
Reference in New Issue
Block a user