Module Contents

ifcopenshell.api.unit.add_conversion_based_unit.add_conversion_based_unit(file: ifcopenshell.file, name: str = 'foot', conversion_offset: float | None = None) ifcopenshell.entity_instance

Add a conversion based unit

If you’re in one of those countries who don’t use SI units, you’re probably simply using SI units converted into another unit. If you want to use _those_ units, you can create a conversion based unit with this function. You can choose from one of: inch, foot, yard, mile, square inch, square foot, square yard, acre, square mile, cubic inch, cubic foot, cubic yard, litre, fluid ounce UK, fluid ounce US, pint UK, pint US, gallon UK, gallon US, degree, ounce, pound, ton UK, ton US, lbf, kip, psi, ksi, minute, hour, day, btu, and fahrenheit.

  • name (str) – A converted name chosen from the list above.

  • conversion_offset (float, optional) – If you want to offset the conversion further by a set number, you may specify it here. For example, fahrenheit is 1.8 * kelvin - 459.67. The -459.67 is the conversion offset. Note that this is just an example and you don’t actually need to specify that for fahrenheit as it’s built into this API function. For advanced users only.


The new IfcConversionBasedUnit or IfcConversionBasedUnitWithOffset

Return type:



# Some common imperial measurements
length = ifcopenshell.api.run("unit.add_conversion_based_unit", model, name="inch")
area = ifcopenshell.api.run("unit.add_conversion_based_unit", model, name="square foot")

# Make it our default units, if we are doing an imperial building
ifcopenshell.api.run("unit.assign_unit", model, units=[length, area])