PJS001 Correct conversion based units - v2
001 | @implementer-agreement 002 | @PJS 003 | @version2 004 | Feature: PJS001 - Correct conversion based units 005 | 006 | The rule verifies that conversion-based units used per Concept Template 4.1.9.9 007 | (https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/concepts/Project_Context/Project_Units/content.html) 008 | have names and corresponding conversion factors per the table of recommended values. 009 | This table is not considered to be a normative reference. 010 | Therefore all schema versions are checked against the latest table from IFC 4X3: 011 | https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcConversionBasedUnit.htm. 012 | 013 | Background: Selection of conversion-based units in default unit assignment 014 | 015 | Given an .IfcProject. 016 | Given its attribute .UnitsInContext. 017 | Given its attribute .Units. 018 | Given [its entity type] ^is^ 'IfcConversionBasedUnit' 019 | 020 | 021 | Scenario: Validating correct names for area, length, and volume units 022 | 023 | Given .UnitType. ^is^ 'AREAUNIT' or 'LENGTHUNIT' or 'VOLUMEUNIT' or 'PLANEANGLEUNIT' 024 | Then its attribute .Name. must be defined [according to the table] 'valid_ConversionBasedUnits' 025 | 026 | 027 | Scenario: Validating correct conversion factors 028 | According to https://www.nist.gov/pml/special-publication-811/nist-guide-si-appendix-b-conversion-factors/nist-guide-si-appendix-b 029 | 030 | Then its attribute .ConversionFactor. must be defined [according to the table] 'valid_ConversionBasedUnits' 031 | 032 | 033 | Scenario: Validating that the conversion is based on SI units 034 | 035 | Given its attribute .ConversionFactor. 036 | Given its attribute .UnitComponent. 037 | Then [its entity type] ^is^ 'IfcSIUnit' 038 | 039 | 040 | Scenario Outline: Validating that the conversion is based on the correct SI unit 041 | 042 | Given .UnitType. ^is^ '<UnitType>' 043 | Given its attribute .ConversionFactor. 044 | Given its attribute .UnitComponent. 045 | Then the value of attribute .Name. must be '<CorrespondingSIUnit>' 046 | 047 | Examples: 048 | | UnitType | CorrespondingSIUnit | 049 | | AREAUNIT | SQUARE_METRE | 050 | | LENGTHUNIT | METRE | 051 | | VOLUMEUNIT | CUBIC_METRE | 052 | | PLANEANGLEUNIT | RADIAN |
Version history
Version |
Tag |
Date |
Commit |
Rule link |
|---|---|---|---|---|
v1 |
2025-11-20 |
|||
v2 |
2025-12-28 |