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 – The user defined type in case of choosing USERDEFINED, or None for no user defined type.
attributes – a dictionary of attribute names and values.
- Returns:
The newly created IfcDerivedUnit
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.,$)