Capability (C096):— representing_value_with_unit |
Date: 2007/08/09 14:58:29 Revision: 1.22
|
This section provides a business level overview of this capability.
This capability describes how a value and its unit is represented in AP239.
It defines four specific use cases, and describes the templates to be used in each:
- Any type of numerical value with any unit (the general case)
- A value with unit which exists in a context, such as a property value representation,
and therefore can be compared with other values in the same context.
- A quantity, which is a limited and specialized value with unit to be used where AP239
explicitly calls for a quantity.
- A count, where the unit is always set to 'count', i.e. the unit is 1.
This section provides an overview of the information model that supports
this capability.
The EXPRESS-G for representing value with unit is shown in the figure
below and explained in the following sections.
Figure 1 — Information model overview
This capability contains two entities:
All units are instantiated with th Entity Unit,
classified with external reference data using Capability
C010: assigning_reference_data. The following is a discussion on how to represent the
multitude of subtypes of Unit with external reference data
instead of using them explicitly.
The Value_with_unit supertype of
Numerical_item_with_unit
references a Unit that may be classified as an
[SI_unit]
Error RDL1: The class SI_unit does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
.
The Unit has amongst others the subtypes
Length_unit,
Mass_unit,
Time_unit,
Electric_current_unit,
Thermodynamic_temperature_unit,
Luminous_intensity_unit,
Amount_of_substance_unit,
Plane_angle_unit,
Solid_angle_unit, and
Ratio_unit.
These subtypes correspond to the seven SI "base units", the plane and solid angle units
formerly known as the "supplementary units" (now included with the SI derived units),
and quantities defined as the ratios of two quantities of the same kind,
which therefore have a dimension which may be expressed by the number one.
EXAMPLE
An example of a ratio unit is: refractive index.
In AP239, the name of the Unit
should be given through external reference data, using
C010: assigning_reference_data.
The use of subtypes of Unit
is therefore deprecated, but not forbidden, by this Capability.
The use of external reference data combines the detailed structuring of the
Unit
subtypes in the model with a flexibility in defining new, specific units for particular purposes.
The PLCS Reference Data contains
classes which directly corresponds to the subtypes defined by the model:
- If the Unit
is classified as [metre]
Error RDL1: The class metre does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Length_unit.
- If the Unit
is classified as [kilogram]
Error RDL1: The class kilogram does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Mass_unit.
- If the Unit
is classified as [second]
Error RDL1: The class second does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Time_unit.
- If the Unit
is classified as [ampere]
Error RDL1: The class ampere does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Electric_current_unit.
- If the Unit
is classified as [kelvin]
Error RDL1: The class kelvin does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Thermodynamic_temperature_unit.
- If the Unit
is classified as [candela]
Error RDL1: The class candela does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Luminous_intensity_unit.
- If the Unit
is classified as [mole]
Error RDL1: The class mole does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Amount_of_substance_unit.
- If the Unit
is classified as [radian]
Error RDL1: The class radian does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Plane_angle_unit.
- If the Unit
is classified as [steradian]
Error RDL1: The class steradian does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
it corresponds to a Solid_angle_unit.
- There are several classes of reference data that corresponds to a Ratio_unit.
In template representing_count the class 'count' is used.
There are other subtypes of Unit::
Conversion_based_unit,
Context_dependent_unit, and
Derived_unit.
These are also represented in external reference data, as well as a basic assortment of sub-classes for each.
Conversion_based_units
are units that are obtained from the SI base units using standard multiplication factors
(such as the kilometre) or are non SI units which can be related back to the relevant
SI unit using a conversion factor (such as the avoirdupois pound the imperial mass
measurement used widely in the USA and other countries). Reference data that can be used to
classify Unit
in correspondence with a Conversion_based_unit include:
- [Conversion_based_length_unit]
Error RDL1: The class Conversion_based_length_unit does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [millimetre]
Error RDL1: The class millimetre does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [kilometre]
Error RDL1: The class kilometre does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [Conversion_based_mass_unit]
Error RDL1: The class Conversion_based_mass_unit does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [milligram]
Error RDL1: The class milligram does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [gram]
Error RDL1: The class gram does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [avoirdupois_pound]
Error RDL1: The class avoirdupois_pound does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [Conversion_based_plane_angle_unit]
Error RDL1: The class Conversion_based_plane_angle_unit does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [degree]
Error RDL1: The class degree does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Derived_units are formed by combining base units.
EXAMPLE
The unit of force is a derivation of the length, mass, and time units.
NOTE
Derived_units may have a name in their own right
such as the unit of force: newton or may be expressed purely in terms of base units such as the measurement of
velocity: metre/second.
Reference data that can be used to classify Unit
in correspondence with a Derived_unit include:
- [Volume_unit]
Error RDL1: The class Volume_unit does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
, with subtype [cubic_metre]
Error RDL1: The class cubic_metre does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [Area_unit]
Error RDL1: The class Area_unit does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
, with subtypes [square_kilometre]
Error RDL1: The class square_kilometre does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
,
[square_metre]
Error RDL1: The class square_metre does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
, and [square_millimetre]
Error RDL1: The class square_millimetre does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
NOTE
The Derived_unit
references a set of one or more Derived_unit_element
objects which are classified with a dimensional exponent that indicates the mathematical relationship
between a Derived_unit
and the underlying base unit in SI. A derived imperial unit would be represented as a
Conversion_based_unit
that was related back to the equivalent SI derived unit.
With external reference data assigned to Unit
this capability is replaced and no longer possible, but the definition of each unit is carried in the external
reference data library instead.
Context_dependent_units
are units used in particular industrial, military, organizational or social
contexts that do not form part of a formal system of units such as the SI.
EXAMPLE
Months, engine starts, and the item descriptions relating to quantities of items -
such as 200 pairs of winter boots
Reference data that can be used to classify Unit
in correspondence with a
Context_dependent_unit include:
- [day]
Error RDL1: The class day does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [week]
Error RDL1: The class week does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [month]
Error RDL1: The class month does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
- [year]
Error RDL1: The class year does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Any Unit
classified with external reference data
which is not one of the other subtypes described above, is automatically considered to be a
Context_dependent_unit.
The following sections define a set of templates for the capability,
where a template is a specification of a set of entities that need to
be instantiated to represent a given set of information.
This section specifies the template representing_value_with_unit.
NOTE
An explanation of a template and the associated instantiation path is
provided in the
Template overview
section.
This template describes how to represent a generic value with unit. It should be used in general cases where a value with
unit is required.
EXAMPLE
The geographic coordinates of a part.
NOTE
Where a numerical item (subtypes of Representation_item)
is required, e.g. for property values, the template
representing_numerical_item
should be used instead.
The EXPRESS-G diagram in
Figure
1
shows the templates and EXPRESS entities that are required
to represent the template
"representing_value_with_unit".
The text highlighted in blue shows the template parameters.
Figure 1 — An EXPRESS-G representation of the Information model for representing_value_with_unit
The graphic for the template to be used in other EXPRESS-G diagrams
is shown in Figure
2
below.
Figure 2 —
The graphical representation of representing_value_with_unit template
The following input parameters are defined for this template:
The value of the property.
The datatype must also be indicated in this parameter, e.g.
"ANY_NUMBER_VALUE(5)".
The class name of the unit in which the value is expressed, defined in external reference data.
The following classes and their sub-classes can be used:
The identifier of the
External_class_library
storing the definition of the class referenced by the parameter @unit.
Value should be set to true if the unit is a SI base unit defined by ISO, i.e.
kilogram (kg) for Mass,
second (s) for Time,
metre (m) for Displacement,
ampere (A) for Electrical current,
kelvin (K) for Temperature,
mole (mol) for Amount of substance, and
candela (cd) for Luminous intensity. If this is not the case it should be set to false.
Note that the representation of true and false depends on exchange format. In Part 21 (a STEP file) true is
represented by the string ".T.", and false by ".F.", while in Part 28 (XML) they are represented by text
strings "true"
and "false".
The following reference parameters are defined for this template:
Allow the
Value_with_unit
entity instantiated in this path to be referenced when this template is used.
%^target = $representing_value_with_unit.value%
Allow the
Unit
entity instantiated in this path to be referenced when this template is used.
Note: The
Unit
entity can be referenced in a template path by:
%^target = $representing_value_with_unit.unit%
where
target
is the parameter to which the
Unit
is bound.
The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique Unit
Each instance of the
entity
()
within the data set shall be uniquely identified
by a combination of the following parameters on this
template (representing_value_with_unit) namely:
unit,
unit_ecl_id.
The
instance is
referenced by the following template parameter:
.
The instantiation path shown below specifies the entities that are to be
instantiated by the template.
The following entities are instantiated with attributes as specified:
Entity in path |
Value |
Inherited from |
Unit.name |
'/IGNORE' |
—
|
The instance diagram in Figure
3
shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_value_with_unit(value='ANY_NUMBER_VALUE(68.84)', si_unit='true', unit='radian', unit_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_value_with_unit template is shown in
Figure
4 below.)
Figure 3 — Entities instantiated by representing_value_with_unit template
The instance diagram in
Figure
4
shows the graphic symbol for the template that is to be
used in other instance diagrams. The example template is:
/representing_value_with_unit(value='ANY_NUMBER_VALUE(68.84)', si_unit='true', unit='radian', unit_ecl_id='urn:plcs:rdl:std')/
Figure 4 — Instantiation of template
No common characterizations of the template
representing_value_with_unit
have been identified. However, the ISO 10303-239 EXPRESS model
may enable other assignments to the entities instantiated by the template.
This section specifies the template representing_numerical_item.
NOTE
An explanation of a template and the associated instantiation path is
provided in the
Template overview
section.
This template describes how to represent a numerical item with unit. A numerical item is referenced from a (subtype of)
Representation, as is the case for properties.
EXAMPLE
The value and unit of a product property, e.g. "3.1 kg" for a weight property.
The EXPRESS-G diagram in
Figure
1
shows the templates and EXPRESS entities that are required
to represent the template
"representing_numerical_item".
The text highlighted in blue shows the template parameters.
Figure 1 — An EXPRESS-G representation of the Information model for representing_numerical_item
The graphic for the template to be used in other EXPRESS-G diagrams
is shown in Figure
2
below.
Figure 2 —
The graphical representation of representing_numerical_item template
The following input parameters are defined for this template:
The value of the property. The datatype is always 'any_number_value'
and should not be registered together with the value, i.e. enter the
value as a number, without datatype.
The class name of the unit in which the value is expressed, defined in external reference data.
The following classes and their sub-classes can be used:
The identifier of the
External_class_library
storing the definition of the class referenced by the parameter @unit.
Value should be set to true if the unit is a SI base unit defined by ISO, i.e.
kilogram (kg) for Mass,
second (s) for Time,
metre (m) for Displacement,
ampere (A) for Electrical current,
kelvin (K) for Temperature,
mole (mol) for Amount of substance, and
candela (cd) for Luminous intensity. If this is not the case it should be set to false.
Note that the representation of true and false depends on exchange format. In Part 21 (a STEP file) true is
represented by the string ".T.", and false by ".F.", while in Part 28 (XML) they are represented by text
strings "true"
and "false".
The following reference parameters are defined for this template:
%^target = $representing_numerical_item.item%
Allow the
Unit
entity instantiated in this path to be referenced when this template is used.
Note: The
Unit
entity can be referenced in a template path by:
%^target = $representing_numerical_item.unit_entity%
where
target
is the parameter to which the
Unit
is bound.
The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique Unit
Each instance of the
entity
(
Unit)
within the data set shall be uniquely identified
by a combination of the following parameters on this
template (representing_numerical_item) namely:
unit,
unit_ecl_id.
The
instance is
referenced by the following template parameter:
unit_entity.
The instantiation path shown below specifies the entities that are to be
instantiated by the template.
The following entities are instantiated with attributes as specified:
The instance diagram in Figure
3
shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_numerical_item(value='any_number_value(3.1)', si_unit='T', unit='Kilogram', unit_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_numerical_item template is shown in
Figure
4 below.)
Figure 3 — Entities instantiated by representing_numerical_item template
The instance diagram in
Figure
4
shows the graphic symbol for the template that is to be
used in other instance diagrams. The example template is:
/representing_numerical_item(value='any_number_value(3.1)', si_unit='T', unit='Kilogram', unit_ecl_id='urn:plcs:rdl:std')/
Figure 4 — Instantiation of template
No common characterizations of the template
representing_numerical_item
have been identified. However, the ISO 10303-239 EXPRESS model
may enable other assignments to the entities instantiated by the template.
This section specifies the template representing_quantity.
NOTE
An explanation of a template and the associated instantiation path is
provided in the
Template overview
section.
This template describes how to represent a quantity.
EXAMPLE
50 litres of petrol.
The EXPRESS-G diagram in
Figure
1
shows the templates and EXPRESS entities that are required
to represent the template
"representing_quantity".
The text highlighted in blue shows the template parameters.
Figure 1 — An EXPRESS-G representation of the Information model for representing_quantity
The graphic for the template to be used in other EXPRESS-G diagrams
is shown in Figure
2
below.
Figure 2 —
The graphical representation of representing_quantity template
The following input parameters are defined for this template:
The value of the property. The datatype is always 'any_number_value'
and should not be registered together with the value, i.e. enter the
value as a number, without datatype.
The class name of the corresponding to the quantity unit.
The following classes and their sub-classes can be used:
The identifier of the
External_class_library
storing the definition of the class referenced by the parameter @class_name.
si_unit (Default=false,Type='BOOLEAN')
Value should be set to true if the unit is a SI base unit defined by ISO, i.e.
kilogram (kg) for Mass,
second (s) for Time,
metre (m) for Displacement,
ampere (A) for Electrical current,
kelvin (K) for Temperature,
mole (mol) for Amount of substance, and
candela (cd) for Luminous intensity. If this is not the case it should be set to false.
Note that the representation of true and false depends on exchange format. In Part 21 (a STEP file) true is
represented by the string ".T.", and false by ".F.", while in Part 28 (XML) they are represented by text
strings "true"
and "false".
The following reference parameters are defined for this template:
Allow the
Value_with_unit
entity instantiated in this path to be referenced when this template is used.
%^target = $representing_quantity.quantity%
Allow the
Unit
entity instantiated in this path to be referenced when this template is used.
Note: The
Unit
entity can be referenced in a template path by:
%^target = $representing_quantity.unit%
where
target
is the parameter to which the
Unit
is bound.
The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique unit
Each instance of the
entity
(
Unit)
within the data set shall be uniquely identified
by a combination of the following parameters on this
template (representing_quantity) namely:
unit_class_name,
unit_ecl_id.
The
instance is
referenced by the following template parameter:
unit.
The instantiation path shown below specifies the entities that are to be
instantiated by the template.
-- Instantiate Value_with_unit entity Value_with_unit-- Set the Value_with_unit attributes Value_with_unit.value_component ->
@value-- Bind the Value_with_unit to the parameter ^quantity. -- The parameter is a reference parameter so the Value_with_unit -- entity can be referred to when this template is used. %^quantity =
Value_with_unit%
-- Bind the Unitt to the parameter ^unit. -- The parameter is a reference parameter so the Uunit -- entity can be referred to when this template is used. %^unit =
Unit%
-- Instantiate entity Unit and point at it Value_with_unit.unit ->
Unit-- Set the Unit attributes Unit.si_unit ->
@si_unitUnit.name = '/IGNORE'
-- Assign reference data for name of Unit /
assigning_reference_data(
items=Unit,
class_name=@unit_class_name,
ecl_id=@unit_ecl_id)/
The following entities are instantiated with attributes as specified:
Entity in path |
Value |
Inherited from |
Unit.name |
'/IGNORE' |
—
|
The instance diagram in Figure
3
shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_quantity(value='ANY_NUMBER_VALUE(5)', si_unit='false', unit_class_name='Gallon', unit_ecl_id='urn:plcs:rdl:sample')/
(an illustration of the consolidated representing_quantity template is shown in
Figure
4 below.)
Figure 3 — Entities instantiated by representing_quantity template
The instance diagram in
Figure
4
shows the graphic symbol for the template that is to be
used in other instance diagrams. The example template is:
/representing_quantity(value='ANY_NUMBER_VALUE(5)', si_unit='false', unit_class_name='Gallon', unit_ecl_id='urn:plcs:rdl:sample')/
Figure 4 — Instantiation of representing_quantity template
No common characterizations of the template
representing_quantity
have been identified. However, the ISO 10303-239 EXPRESS model
may enable other assignments to the entities instantiated by the template.
This section specifies the template representing_count.
NOTE
An explanation of a template and the associated instantiation path is
provided in the
Template overview
section.
This template describes how to represent a count of items.
EXAMPLE
The number of spark plugs.
The EXPRESS-G diagram in
Figure
1
shows the templates and EXPRESS entities that are required
to represent the template
"representing_count".
The text highlighted in blue shows the template parameters.
Figure 1 — An EXPRESS-G representation of the Information model for representing_count
The graphic for the template to be used in other EXPRESS-G diagrams
is shown in Figure
2
below.
Figure 2 —
The graphical representation of representing_count template
The following input parameters are defined for this template:
The value of the quantity. Default value is 1.
The datatype is always 'any_number_value'
and should not be registered together with the value, i.e. enter the
value as a number, without datatype.
The following reference parameters are defined for this template:
Allow the
Value_with_unit
entity instantiated in this path to be referenced when this template is used.
%^target = $representing_count.count%
Allow the
Unit
entity instantiated in this path to be referenced when this template is used.
Note: The
Unit
entity can be referenced in a template path by:
%^target = $representing_count.unit%
where
target
is the parameter to which the
Unit
is bound.
The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique Count unit
Each instance of the
entity
(
Unit)
within the data set shall be uniquely identified
by the parameter values set on the following templates instantiated by
representing_count namely:
template #1
assigning_reference_data(
class_name=Count,
ecl_id=urn:plcs:std:rdl).
The
instance is
referenced by the following template parameter:
unit.
The instantiation path shown below specifies the entities that are to be
instantiated by the template.
-- Instantiate Value_with_unit entity Value_with_unit-- Set the Value_with_unit attributes Value_with_unit.value_component ->
@value-- Instantiate Unit and point at it Value_with_unit.unit ->
Unit-- Set the Unit attributes Unit.si_unit = 'false'
Unit.name = '/IGNORE'
-- Bind the Value_with_unit to the parameter ^count. -- The parameter is a reference parameter so the Value_with_unit -- entity can be referred to when this template is used. %^count =
Value_with_unit%
-- Bind the Unit to the parameter ^unit. -- The parameter is a reference parameter so the Unitt -- entity can be referred to when this template is used. %^unit =
Unit%
-- Assign reference data for name of Unit /
assigning_reference_data(
items=Unit,
class_name='Count',
ecl_id='urn:plcs:rdl:std')/
The following entities are instantiated with attributes as specified:
The instance diagram in Figure
3
shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_count(value='ANY_NUMBER_VALUE(5)')/
(an illustration of the consolidated representing_count template is shown in
Figure
4 below.)
Figure 3 — Entities instantiated by representing_count template
The instance diagram in
Figure
4
shows the graphic symbol for the template that is to be
used in other instance diagrams. The example template is:
/representing_count(value='ANY_NUMBER_VALUE(5)')/
Figure 4 — Instantiation of representing_count template
No common characterizations of the template
representing_count
have been identified. However, the ISO 10303-239 EXPRESS model
may enable other assignments to the entities instantiated by the template.