ifcopenshell.api.unit.add_derived_unit
¶
Module Contents¶
- ifcopenshell.api.unit.add_derived_unit.add_derived_unit(file: ifcopenshell.file, unit_type: str, userdefinedtype: str, attributes: dict[ifcopenshell.entity_instance, int]) ifcopenshell.entity_instance ¶
Add a new Derive unit
The supported types are ANGULARVELOCITYUNIT, AREADENSITYUNIT, COMPOUNDPLANEANGLEUNIT, DYNAMICVISCOSITYUNIT, HEATFLUXDENSITYUNIT, INTEGERCOUNTRATEUNIT, ISOTHERMALMOISTURECAPACITYUNIT, KINEMATICVISCOSITYUNIT, LINEARVELOCITYUNIT, MASSDENSITYUNIT, MASSFLOWRATEUNIT, MOISTUREDIFFUSIVITYUNIT, MOLECULARWEIGHTUNIT, SPECIFICHEATCAPACITYUNIT, THERMALADMITTANCEUNIT, THERMALCONDUCTANCEUNIT, THERMALRESISTANCEUNIT, THERMALTRANSMITTANCEUNIT, VAPORPERMEABILITYUNIT, VOLUMETRICFLOWRATEUNIT, ROTATIONALFREQUENCYUNIT, TORQUEUNIT, MOMENTOFINERTIAUNIT, LINEARMOMENTUNIT, LINEARFORCEUNIT, PLANARFORCEUNIT, MODULUSOFELASTICITYUNIT, SHEARMODULUSUNIT, LINEARSTIFFNESSUNIT, ROTATIONALSTIFFNESSUNIT, MODULUSOFSUBGRADEREACTIONUNIT, ACCELERATIONUNIT, CURVATUREUNIT, HEATINGVALUEUNIT, IONCONCENTRATIONUNIT, LUMINOUSINTENSITYDISTRIBUTIONUNIT, MASSPERLENGTHUNIT, MODULUSOFLINEARSUBGRADEREACTIONUNIT, MODULUSOFROTATIONALSUBGRADEREACTIONUNIT, PHUNIT, ROTATIONALMASSUNIT, SECTIONAREAINTEGRALUNIT, SECTIONMODULUSUNIT, SOUNDPOWERLEVELUNIT, SOUNDPOWERUNIT, SOUNDPRESSURELEVELUNIT, SOUNDPRESSUREUNIT, TEMPERATUREGRADIENTUNIT, TEMPERATURERATEOFCHANGEUNIT, THERMALEXPANSIONCOEFFICIENTUNIT, WARPINGCONSTANTUNIT, WARPINGMOMENTUNIT, USERDEFINED.
In case of choosing USERDEFINED, the UserDefinedType parameter needs to be provided
- Parameters:
unit_type (str) – A type of unit chosen from the list above. For example, choosing THERMALCONDUCTANCEUNIT will give you a Thermal conductance.
userdefinedtype (str or None) – The user defined type in case of choosing USERDEFINED, or None for no user defined type.
attributes (dict) – a dictionary of attribute names and values.
- Returns:
The newly created IfcDerivedUnit
- Return type:
Example:
# Linear velocity in m/s length = ifcopenshell.api.unit.add_si_unit(model, unit_type="LENGTHUNIT") #2=IfcSIUnit(*,.LENGTHUNIT.,$,.METRE.) time = ifcopenshell.api.unit.add_si_unit(model, unit_type="TIMEUNIT") #4=IfcSIUnit(*,.TIMEUNIT.,$,.SECOND.) linear_velocity = ifcopenshell.api.unit.add_derived_unit(model, 'LINEARVELOCITY', None, {length : 1, time : -1}) #10=IfcDerivedUnitElement(#2, 1) #11=IfcDerivedUnitElement(#4, -1) #12=IfcDerivedUnit((#10,#11),.LINEARVELOCITY.,$)