示例#1
0
 def test_importing_monetary_units_ifc2x3(self):
     ifc = ifcopenshell.file(schema="IFC2X3")
     unit = ifc.createIfcMonetaryUnit()
     unit.Currency = "USD"
     subject.import_unit_attributes(unit)
     props = bpy.context.scene.BIMUnitProperties
     assert props.unit_attributes.get("Currency").enum_value == "USD"
示例#2
0
 def test_importing_monetary_units(self):
     ifc = ifcopenshell.file()
     unit = ifc.createIfcMonetaryUnit()
     unit.Currency = "Currency"
     subject.import_unit_attributes(unit)
     props = bpy.context.scene.BIMUnitProperties
     assert props.unit_attributes.get("Currency").string_value == "Currency"
示例#3
0
 def test_run(self):
     props = bpy.context.scene.unit_settings
     props.system = "METRIC"
     assert subject.is_scene_unit_metric() is True
     props.system = "IMPERIAL"
     assert subject.is_scene_unit_metric() is False
     props.system = "NONE"
     assert subject.is_scene_unit_metric() is True
示例#4
0
    def test_importing_multiple_units(self):
        ifc = ifcopenshell.file()
        tool.Ifc.set(ifc)
        unit1 = ifc.createIfcDerivedUnit(UnitType="ANGULARVELOCITYUNIT")
        unit2 = ifc.createIfcMonetaryUnit(Currency="Currency")
        unit3 = ifc.createIfcContextDependentUnit(Name="Name",
                                                  UnitType="ABSORBEDDOSEUNIT")
        unit4 = ifc.createIfcConversionBasedUnit(Name="Name",
                                                 UnitType="ABSORBEDDOSEUNIT")
        unit5 = ifc.createIfcSIUnit(Name="AMPERE",
                                    Prefix="MILLI",
                                    UnitType="ABSORBEDDOSEUNIT")
        unit6 = ifc.createIfcSIUnit(Name="CUBIC_METRE",
                                    Prefix="CENTI",
                                    UnitType="ABSORBEDDOSEUNIT")
        ifc.createIfcUnitAssignment(Units=[unit2])
        subject.import_units()
        props = bpy.context.scene.BIMUnitProperties
        assert len(props.units) == 6

        assert props.units[0].ifc_definition_id == unit1.id()
        assert props.units[0].name == ""
        assert props.units[0].is_assigned is False
        assert props.units[0].unit_type == unit1.UnitType
        assert props.units[0].ifc_class == unit1.is_a()

        assert props.units[1].ifc_definition_id == unit2.id()
        assert props.units[1].name == "Currency"
        assert props.units[1].is_assigned is True
        assert props.units[1].unit_type == "CURRENCY"
        assert props.units[1].ifc_class == unit2.is_a()

        assert props.units[2].ifc_definition_id == unit3.id()
        assert props.units[2].name == "Name"
        assert props.units[2].is_assigned is False
        assert props.units[2].unit_type == unit3.UnitType
        assert props.units[2].ifc_class == unit3.is_a()

        assert props.units[3].ifc_definition_id == unit4.id()
        assert props.units[3].name == "Name"
        assert props.units[3].is_assigned is False
        assert props.units[3].unit_type == unit4.UnitType
        assert props.units[3].ifc_class == unit4.is_a()

        assert props.units[4].ifc_definition_id == unit5.id()
        assert props.units[4].name == "MILLIAMPERE"
        assert props.units[4].is_assigned is False
        assert props.units[4].unit_type == unit5.UnitType
        assert props.units[4].ifc_class == unit5.is_a()

        assert props.units[5].ifc_definition_id == unit6.id()
        assert props.units[5].name == "CUBIC CENTIMETRE"
        assert props.units[5].is_assigned is False
        assert props.units[5].unit_type == unit6.UnitType
        assert props.units[5].ifc_class == unit6.is_a()
示例#5
0
 def test_importing_derived_units(self):
     ifc = ifcopenshell.file()
     unit = ifc.createIfcDerivedUnit()
     unit.UnitType = "ANGULARVELOCITYUNIT"
     unit.UserDefinedType = "UserDefinedType"
     subject.import_unit_attributes(unit)
     props = bpy.context.scene.BIMUnitProperties
     assert props.unit_attributes.get(
         "UnitType").enum_value == "ANGULARVELOCITYUNIT"
     assert props.unit_attributes.get(
         "UserDefinedType").string_value == "UserDefinedType"
示例#6
0
 def test_importing_si_units(self):
     ifc = ifcopenshell.file()
     tool.Ifc.set(ifc)
     unit = ifc.createIfcSIUnit()
     unit.UnitType = "ABSORBEDDOSEUNIT"
     unit.Prefix = "EXA"
     unit.Name = "AMPERE"
     subject.import_unit_attributes(unit)
     props = bpy.context.scene.BIMUnitProperties
     assert props.unit_attributes.get(
         "UnitType").enum_value == "ABSORBEDDOSEUNIT"
     assert props.unit_attributes.get("Prefix").enum_value == "EXA"
     assert props.unit_attributes.get("Name").enum_value == "AMPERE"
     assert props.unit_attributes.get("Dimensions") is None
示例#7
0
 def test_importing_conversion_based_units(self):
     ifc = ifcopenshell.file()
     tool.Ifc.set(ifc)
     unit = ifc.createIfcConversionBasedUnit()
     unit.UnitType = "ABSORBEDDOSEUNIT"
     unit.Name = "Name"
     unit.Dimensions = ifc.createIfcDimensionalExponents(
         1, 2, 3, 4, 5, 6, 7)
     subject.import_unit_attributes(unit)
     props = bpy.context.scene.BIMUnitProperties
     assert props.unit_attributes.get(
         "UnitType").enum_value == "ABSORBEDDOSEUNIT"
     assert props.unit_attributes.get("Name").string_value == "Name"
     assert props.unit_attributes.get(
         "Dimensions").string_value == "[1, 2, 3, 4, 5, 6, 7]"
示例#8
0
 def test_exporting_si_units(self):
     TestImportUnitAttributes().test_importing_si_units()
     assert subject.export_unit_attributes() == {
         "UnitType": "ABSORBEDDOSEUNIT",
         "Prefix": "EXA",
         "Name": "AMPERE"
     }
示例#9
0
 def test_exporting_conversion_based_units(self):
     TestImportUnitAttributes().test_importing_conversion_based_units()
     assert subject.export_unit_attributes() == {
         "UnitType": "ABSORBEDDOSEUNIT",
         "Name": "Name",
         "Dimensions": [1, 2, 3, 4, 5, 6, 7],
     }
示例#10
0
 def test_run(self):
     bpy.context.scene.unit_settings.system = "METRIC"
     bpy.context.scene.unit_settings.length_unit = "METERS"
     assert subject.get_scene_unit_si_prefix() is None
     bpy.context.scene.unit_settings.length_unit = "MICROMETERS"
     assert subject.get_scene_unit_si_prefix() == "MICRO"
     bpy.context.scene.unit_settings.length_unit = "MILLIMETERS"
     assert subject.get_scene_unit_si_prefix() == "MILLI"
     bpy.context.scene.unit_settings.length_unit = "CENTIMETERS"
     assert subject.get_scene_unit_si_prefix() == "CENTI"
     bpy.context.scene.unit_settings.length_unit = "KILOMETERS"
     assert subject.get_scene_unit_si_prefix() == "KILO"
     bpy.context.scene.unit_settings.length_unit = "ADAPTIVE"
     assert subject.get_scene_unit_si_prefix() is None
示例#11
0
 def test_getting_a_metric_name(self):
     bpy.context.scene.unit_settings.system = "METRIC"
     assert subject.get_scene_unit_name("length") == "METRE"
     assert subject.get_scene_unit_name("area") == "SQUARE_METRE"
     assert subject.get_scene_unit_name("volume") == "CUBIC_METRE"
示例#12
0
 def test_exporting_monetary_units_ifc2x3(self):
     TestImportUnitAttributes().test_importing_monetary_units_ifc2x3()
     assert subject.export_unit_attributes() == {"Currency": "USD"}
示例#13
0
 def test_exporting_derived_units(self):
     TestImportUnitAttributes().test_importing_derived_units()
     assert subject.export_unit_attributes() == {
         "UnitType": "ANGULARVELOCITYUNIT",
         "UserDefinedType": "UserDefinedType",
     }
示例#14
0
 def test_run(self):
     bpy.context.scene.BIMUnitProperties.is_editing = False
     subject.enable_editing_units()
     assert bpy.context.scene.BIMUnitProperties.is_editing == True
示例#15
0
 def test_run(self):
     ifc = ifcopenshell.file()
     unit = ifc.createIfcSIUnit()
     subject.set_active_unit(unit)
     assert bpy.context.scene.BIMUnitProperties.active_unit_id == unit.id()
示例#16
0
 def test_getting_a_name_with_no_unit_system(self):
     bpy.context.scene.unit_settings.system = "NONE"
     assert subject.get_scene_unit_name("length") == "METRE"
示例#17
0
 def test_run(self):
     bpy.context.scene.BIMUnitProperties.active_unit_id = 1
     subject.clear_active_unit()
     assert bpy.context.scene.BIMUnitProperties.active_unit_id == 0
示例#18
0
 def test_getting_an_imperial_name(self):
     bpy.context.scene.unit_settings.system = "IMPERIAL"
     bpy.context.scene.unit_settings.length_unit = "MILES"
     assert subject.get_scene_unit_name("length") == "mile"
     assert subject.get_scene_unit_name("area") == "square mile"
     assert subject.get_scene_unit_name("volume") == "cubic mile"
     bpy.context.scene.unit_settings.length_unit = "FEET"
     assert subject.get_scene_unit_name("length") == "foot"
     assert subject.get_scene_unit_name("area") == "square foot"
     assert subject.get_scene_unit_name("volume") == "cubic foot"
     bpy.context.scene.unit_settings.length_unit = "INCHES"
     assert subject.get_scene_unit_name("length") == "inch"
     assert subject.get_scene_unit_name("area") == "square inch"
     assert subject.get_scene_unit_name("volume") == "cubic inch"
     bpy.context.scene.unit_settings.length_unit = "THOU"
     assert subject.get_scene_unit_name("length") == "thou"
     assert subject.get_scene_unit_name("area") == "square thou"
     assert subject.get_scene_unit_name("volume") == "cubic thou"
     bpy.context.scene.unit_settings.length_unit = "ADAPTIVE"
     assert subject.get_scene_unit_name("length") == "foot"
     assert subject.get_scene_unit_name("area") == "square foot"
     assert subject.get_scene_unit_name("volume") == "cubic foot"
示例#19
0
 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
示例#20
0
 def test_run(self):
     ifc = ifcopenshell.file()
     assert subject.get_unit_class(ifc.createIfcSIUnit()) == "IfcSIUnit"
     assert subject.get_unit_class(
         ifc.createIfcNamedUnit()) == "IfcNamedUnit"