| Application module: Value with unit | ISO/TS 10303-1054:2019(E)  © ISO  | 
         
This clause specifies the information requirements for the Value with unit application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Value_with_unit_arm schema and identifies the necessary external references.
EXPRESS specification:
         *)
            SCHEMA Value_with_unit_arm;
(*
The following EXPRESS interface statement specifies the elements imported from the ARM of another application module.
EXPRESS specification:
*)
            USE FROM
            Maths_value_arm;
               -- 
            ISO/TS 10303-1092
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Maths_value_arm ISO/TS 10303-1092 
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.

EXPRESS specification:
            *)
            TYPE 
            any_number_value =
            NUMBER;
            END_TYPE; 
            (*
            

EXPRESS specification:
            *)
            TYPE 
            any_string_value =
            STRING;
            END_TYPE; 
            (*
            

EXPRESS specification:
            *)
            TYPE 
            area_measure =
            REAL;
            END_TYPE; 
            (*
            

EXPRESS specification:
            *)
            TYPE 
            count_measure =
            NUMBER;
            END_TYPE; 
            (*
            

EXPRESS specification:
            *)
            TYPE 
            length_measure =
            REAL;
            END_TYPE; 
            (*
            

The measure_value type is an extensible list of alternate data types that allows for the designation of the data types any_number_value, any_string_value, length_measure, plane_angle_measure, area_measure, count_measure, ratio_measure, and volume_measure.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
            *)
            TYPE 
            measure_value =
            
            EXTENSIBLE
            
            
            SELECT
               (any_number_value, 
    any_string_value, 
    length_measure, 
    plane_angle_measure, 
    area_measure, 
    count_measure, 
    ratio_measure, 
    volume_measure);
            END_TYPE; 
            (*
            

EXPRESS specification:
            *)
            TYPE 
            non_negative_length_measure =
            length_measure;
WHERE
 
              WR1: SELF >= 0.0;
            END_TYPE; 
            (*
            
Formal propositions:
WR1: the value shall be a non-negative number.

EXPRESS specification:
            *)
            TYPE 
            non_negative_plane_angle_measure =
            plane_angle_measure;
WHERE
 
              WR1: SELF >= 0.0;
            END_TYPE; 
            (*
            
Formal propositions:
WR1: the value shall be a non-negative number.

EXPRESS specification:
            *)
            TYPE 
            plane_angle_measure =
            REAL;
            END_TYPE; 
            (*
            

EXPRESS specification:
            *)
            TYPE 
            positive_length_measure =
            non_negative_length_measure;
WHERE
 
              WR1: SELF > 0.0;
            END_TYPE; 
            (*
            
Formal propositions:
WR1: the value shall be a positive number.

EXPRESS specification:
            *)
            TYPE 
            positive_plane_angle_measure =
            non_negative_plane_angle_measure;
WHERE
 
              WR1: SELF > 0.0;
            END_TYPE; 
            (*
            
Formal propositions:
WR1: the value shall be a positive number.

EXPRESS specification:
            *)
            TYPE 
            ratio_measure =
            REAL;
            END_TYPE; 
            (*
            

EXPRESS specification:
            *)
            TYPE 
            volume_measure =
            REAL;
            END_TYPE; 
            (*
            
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.


NOTE 1 This definition applies to the SI quantity 'mole'. When the mole is used, the elementary entities, whose quantity is expressed, must be specified . They may be atoms, molecules, ions, electrons or other particles or specified groups of such particles (see ISO 31-8).
NOTE 2 This unit corresponds to one of the seven fundamental quantities as specified in ISO 1000.
EXPRESS specification:
            *)
            ENTITY Amount_of_substance_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Area_unit
              SUBTYPE OF (Derived_unit);
            END_ENTITY;
(*
            


EXAMPLE The number of parts in an assembly is a physical quantity that may be measured in a unit called 'parts'. Such a unit cannot be related to an SI unit.
EXPRESS specification:
            *)
            ENTITY Context_dependent_unit
              SUBTYPE OF (Unit);
WHERE
 
              WR1: EXISTS(SELF\Unit.name);
            END_ENTITY;
(*
            
Formal propositions:
WR1: The Context_dependent_unit shall have a name.


NOTE A Conversion_based_unit is often used to convert a unit in one system of units to a similar unit in another system.
EXAMPLE An Imperial inch is 25.4 millimetres
EXPRESS specification:
            *)
            ENTITY Conversion_based_unit
              SUBTYPE OF (Unit);
            
            
            
              conversion_factor : Value_with_unit;
WHERE
 
              WR1: EXISTS(SELF\Unit.name);
            END_ENTITY;
(*
            
Attribute definitions:
conversion_factor: the Value_with_unit that defines the conversion.
Formal propositions:
WR1: The Conversion_based_unit shall have a name.


EXAMPLE Newtons per square metre is a derived unit.
EXPRESS specification:
            *)
            ENTITY Derived_unit
              SUPERTYPE OF (ONEOF (Area_unit,
                       Volume_unit))
              SUBTYPE OF (Unit);
            
            
            
              elements : SET[1:?] OF Derived_unit_element;
            END_ENTITY;
(*
            
Attribute definitions:
elements: a set of units and their exponents whose product defines the Derived_unit.
NOTE Each element is one term in the Derived_unit.


EXPRESS specification:
            *)
            ENTITY Derived_unit_element;
            
            
            
              base_unit : Unit;
            
            
            
              exponent : REAL;
            END_ENTITY;
(*
            
Attribute definitions:
base_unit: the unit of a term in the Derived_unit.
exponent: the real number for the Derived_unit.


EXPRESS specification:
            *)
            ENTITY Duration
              SUBTYPE OF (Value_with_unit);
WHERE
 
              WR1: 'VALUE_WITH_UNIT_ARM.' + 'TIME_UNIT' IN TYPEOF(SELF\Value_with_unit.unit);
            END_ENTITY;
(*
            
Formal propositions:
WR1: the unit of the Duration shall be a Time_unit.


EXPRESS specification:
            *)
            ENTITY Electric_current_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Length_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Luminous_intensity_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Mass_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Maths_value_with_unit;
            
            
            
              unit : Unit;
            
            
            
              value_component : maths_value;
            END_ENTITY;
(*
            
Attribute definitions:
unit: the Unit with which the physical quantity is expressed.
value_component: the mathematical expression that describes the quantity.


EXPRESS specification:
            *)
            ENTITY Plane_angle_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Ratio_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Solid_angle_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Thermodynamic_temperature_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Time_unit
              SUBTYPE OF (Unit);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Uncertainty_with_unit
              SUBTYPE OF (Value_with_unit);
            
            
            
              name : STRING;
            
            
            
              description : 
            OPTIONAL 
            STRING;
            END_ENTITY;
(*
            
Attribute definitions:
name: the words by which the Uncertainty_with_unit is known.
description: the text that provides further information about the Uncertainty_with_unit. The value of this attribute need not be specified.


EXPRESS specification:
            *)
            ENTITY Unit
              SUPERTYPE OF (ONEOF (Amount_of_substance_unit,
                       Electric_current_unit,
                       Length_unit,
                       Luminous_intensity_unit,
                       Mass_unit,
                       Plane_angle_unit,
                       Ratio_unit,
                       Solid_angle_unit,
                       Thermodynamic_temperature_unit,
                       Time_unit));
            
            
            
              name : STRING;
            
            
            
              si_unit : BOOLEAN;
            END_ENTITY;
(*
            
Attribute definitions:
name: the words by which the Unit is known.
si_unit: the Boolean value that indicates whether the Unit is one of the units defined in the SI system.


EXPRESS specification:
            *)
            ENTITY Value_with_unit;
            
            
            
              unit : Unit;
            
            
            
              value_component : measure_value;
            END_ENTITY;
(*
            
Attribute definitions:
unit: the Unit with which the physical quantity is expressed.
value_component: the value of the quantity.


EXPRESS specification:
            *)
            ENTITY Volume_unit
              SUBTYPE OF (Derived_unit);
            END_ENTITY;
(*
            
         *)
         END_SCHEMA;  -- Value_with_unit_arm
(*
         © ISO 2019 — All rights reserved