Note: There is a newer version of this specification see VEC 2.0.2
With Version 1.1.0 a more flexible and meaningful unit system has been introduced. A unit is used to define the dimension of a numerical value. In the VEC a unit is expressed by the abstract class Unit. The different existing types of units are represented by its concrete subclasses. Every unit can have an optional exponent. If no exponent is defined, this is equal to an exponent of 1.
The class SIUnit defines a unit in the terms of the SI-System. A SIUnit is defined by a combination of an optional SiPrefix (e.g. Milli) and SIUnitName (e.g. Metre).
The class IECUnit defines a unit in the terms of the IEC-System which is used for measurement of digital data amounts.
The class ImperialUnit defines a unit in the terms of the imperial unit system (e.g. Inch).
The class OtherUnit is used to define units that do not belong to any standardized unit system, but which are relevant in the context of the VEC. Currently these are the units Pi (as a unit for angular frequency or circular measure) and Piece.
The class CustomUnit can be used to define units that are necessary for a specific use case and that are currently not considered in the VEC.
The class CompositeUnit is used to define units that are created by the multiplication of other units (Association CompositeUnit.factors). For example the Unit "Ohm per Metre" will be created with two instances of SIUnit. One SIUnit Ohm (without prefix and exponent) and one SIUnit Metre (without prefix and an exponent of "-1").
Mainly these Units are used by the class ValueWithUnit which can be either a ValueRange or a NumericalValue. A ValueRange defines a range of a value between minimum and maximum. A NumericalValue defines a single value with an optional Tolerance.
Note: For the purpose of clarity, not all literals of all enumerations are displayed. If literals are omitted in the graphical representation a "..." is shown.