``PJS001`` Correct conversion based units - v2 ======================================================================================================================================================================================================== .. parsed-literal:: 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 | :doc:`Given an .IfcProject. ` 015 | :doc:`Given its attribute .UnitsInContext. ` 016 | :doc:`Given its attribute .Units. ` 017 | :doc:`Given [its entity type] ^is^ 'IfcConversionBasedUnit' ` 018 | 019 | Scenario: Validating correct names for area, length, and volume units 020 | :doc:`Given .UnitType. ^is^ 'AREAUNIT' or 'LENGTHUNIT' or 'VOLUMEUNIT' or 'PLANEANGLEUNIT' ` 021 | :doc:`Then its attribute .Name. must be defined [according to the table] 'valid\_ConversionBasedUnits' ` 022 | 023 | Scenario: Validating correct conversion factors 024 | :doc:`Then its attribute .ConversionFactor. must be defined [according to the table] 'valid\_ConversionBasedUnits' ` 025 | 026 | Scenario: Validating that the conversion is based on SI units 027 | :doc:`Given its attribute .ConversionFactor. ` 028 | :doc:`Given its attribute .UnitComponent. ` 029 | :doc:`Then [its entity type] ^is^ 'IfcSIUnit' ` 030 | 031 | Scenario Outline: Validating that the conversion is based on the correct SI unit 032 | :doc:`Given .UnitType. ^is^ '\' ` 033 | :doc:`Given its attribute .ConversionFactor. ` 034 | :doc:`Given its attribute .UnitComponent. ` 035 | :doc:`Then the value of attribute .Name. must be '\' ` 036 | 037 | Examples: 038 | | UnitType | CorrespondingSIUnit | 039 | | AREAUNIT | SQUARE\_METRE | 040 | | LENGTHUNIT | METRE | 041 | | VOLUMEUNIT | CUBIC\_METRE | 042 | | PLANEANGLEUNIT | RADIAN | .. rubric:: Version history .. list-table:: :header-rows: 1 * - Version - Tag - Date - Commit - Rule link * - v1 - :tag:`v0.8.3` - 2025-11-20 - :commit:`7c8ba3c5da6df37557af58f0500e7f73ffc1eda4` - `view `_ * - v2 - n/a - 2025-12-28 - :commit:`e914eef366c384bd54145bf8648c4ee446f2335f` - n/a