Description
I am working on an alignment between QUDT and IFC, a schema for building information modelling. The purpose is to define different 'standards' for building models (think: CompanyA's standard and CompanyB's standard), and to translate models from one standard to the other. Here is an Overview of units/measurements in IFC
I can map most of the IFC 'Measures' directly to QUDT QuantityKinds, but not all.
Here are the problematic ones (using the IfcDerivedUnitEnum enum; each has a corresponding Measure, such as IfcIsothermalMoistureCapacityMeasure
):
- IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT:
qk:SpecificVolume
is a more general QK that should fit - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT:
qk:VolumeFlowRate
might be ok - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT:
qk:ThermalConductivity
might fit - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT:
qk:ThermalConductance
might fit - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT: not in QUDT, no replacement found, and no unit either. Maybe https://en.wikipedia.org/wiki/Perm_(unit)?
- IfcDerivedUnitEnum.LINEARFORCEUNIT: QUDT has
qk:Force
- the restriction to linear is not in QUDT. - IfcDerivedUnitEnum.PLANARFORCEUNIT: QUDT has
qk:Force
- the restriction to planar is not in QUDT. - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT:
qk:ForcePerLength
might be ok, I am unsure though. - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT: not in QUDT, and the common unit, N-PER-M3 has no QuantityKind. There is a Quantitykind with the same dimension vector, SpectralRadiantEnergyDensity, but that seems far off
- IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT: QUDT has
qk:ForcePerArea
that might be ok, based on the unit, N-PER-M2 - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT: not in QUDT,
qk:ForcePerAngle
might be ok, based on the unit, N-PER-RAD - IfcDerivedUnitEnum.HEATINGVALUEUNIT:
qk:SpecificEnergy
could fit - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT: not in QUDT.
qk:IonDensity
is a close match, but it may not be ok, as in IFC, it is associated with count per volume, but the derivation for ionconcentrationunit is g/l. - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT: not in QUDT. The derivation, cd / lm does not exist as a unit in QUDT
- IfcDerivedUnitEnum.PHUNIT: not in QUDT as a QuantityKind, but there is unit:PH (no quantity kind)
- IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT: not in QUDT, and not sure what it is. The unit, m^5 is not in QUDT
- IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT: not in QUDT, but the unit, K/m is
- IfcDerivedUnitEnum.WARPINGCONSTANTUNIT: not in QUDT, nor is the unit, M^6
- IfcDerivedUnitEnum.WARPINGMOMENTUNIT: not in QUDT, but NM^2 is
I would like to achieve bijective mappings between QUDT QuantityKinds and IFC Measures(UnitTypes)
Thus,
- mapping multiple IFC measures to
qk:Force
is a problem for me - having no mapping for an IFC measure (such as the warping measures) is a problem, too.
Adding the missing units/quantitykinds would fix the problem for me, so I suggest to provide a PR with the following additions:
- IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT: add
qk:IsothermalMoustureCapacity
skos:broaderqk:SpecificVolume
- IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT: add
qk:MoistureDiffusivity
skos:broaderqk:VolumeFlowRate
- IfcDerivedUnitEnum.THERMALADMITTANCEUNIT: add
qk:ThermalAdmittance
skos:broaderqk:ThermalConductivity
- IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT: add
qk:TermalTransmittance
skos:broaderqk:ThermalConductance
- IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT: add the different https://en.wikipedia.org/wiki/Perm_(unit) units and
qk:VaporPermeability
(not sure of a more general concept to link to/from), and associate them - IfcDerivedUnitEnum.LINEARFORCEUNIT: add
qk:LinearForce
skos:broaderqk:Force
- IfcDerivedUnitEnum.PLANARFORCEUNIT: add
qk:PlanarForce
skos:broaderqk:Force
- IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT: add
qk:LinearStiffness
skos:broaderqk:ForcePerLength
- IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT: add
qk:ModulusOfSubgradeReaction
, link to and use qkdv of N-PER-M3 - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT: add
qk:ModulusOfLinearSubgradeReaction
skos:broaderqk:ForcePerArea
- IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT: add
qk:ModulusOfRotationalSubgradeReaction
skos:broaderqk:ForcePerAngle
- IfcDerivedUnitEnum.HEATINGVALUEUNIT: add
qk:HeatingValue
skos:broaderqk:SpecificEnergy
- IfcDerivedUnitEnum.IONCONCENTRATIONUNIT: do nothing (I'll use
qk:IonDensity
) - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT: Not sure what that is, but I would still add
unit:CD-PER-LM
andqk:LuminousIntensityDistribution
and associate them - IfcDerivedUnitEnum.PHUNIT: add
qk:Acidity
, associate withunit:PH
- IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT: and not sure what it is, but I would add
unit:M5
andqk:SectionAreaIntegral
and associate them - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT: add
qk:TemperatureGradient
, associate withunit:K-PER-M
- IfcDerivedUnitEnum.WARPINGCONSTANTUNIT: add
qk:WarpingConstant
andunit:M6
, and associate them - IfcDerivedUnitEnum.WARPINGMOMENTUNIT: add
qk:WarpingMoment
andunit:N-M2
and associate them
I am grateful for any corrections or suggestions for the problems listed above.
If there is interest, I could also contribute a mapping from QUDT units to IFC units, and from QUDT quantitykinds to IFC unit types/measures.