Multiple-Value Characteristics 
Multiple-value characteristics can have several values at a time.
Multiple-value characteristics often cause problems in dependencies, because it is not always clear how values are to be compared with each other.The comparison of two multiple-value characteristics is processed differently in different dependency types.
Processing in Constraints
In constraints, you can compare two multiple-value characteristics with each other, because the individual values are compared, rather than the quantity of characteristic values. This means that first value ‘A’ is compared, then value B, and so on.
If the CONDITION section of a constraint contains a comparison of two multiple-value characteristics, the constraint is only processed for pairs of values in the two characteristics.If the same equation is entered in the RESTRICTIONS section of a constraint, each individual value of A is compared to the individual values of B.
Since comparisons in the RESTRICTIONS section of a constraint tend to automatically infer values for the characteristics on the left-hand side of the equation (refer to Constraints: Inferring Values), this would mean that the values of B are assigned to A.
Since equations in the RESTRICTIONS section of a constraint always automatically lead to inference of values, you cannot use them to check the configuration.
The equation A.Extras <> ‘Central_locking’ in a constraint condition means that the constraint can be processed if any value that is not ‘Central_locking’ (for example, ‘ABS’ and ‘Sunroof’) is assigned to characteristic EXTRAS.
If you enter this equation in the restrictions section, an inconsistency occurs if the value ‘Central_locking’ is selected as one of the extras.Processing in Preconditions, Selection Conditions, and the Conditional Section of Procedures and Actions
In these dependency types, the quantity of values is compared to each other.
The comparison of two multiple-value characteristics is not possible in preconditions, selection conditions, procedures, and actions, because the meaning of the comparison is ambiguous.For example, if car A has the extras ABS and Sunroof, and another car B has the extras ABS, Sunroof, and Central locking, the following equation can have different meanings:
A.Extras = B.Extras
The possibilities are:
Inequality can also have different meanings for multiple-value characteristics:
A.Extras<>‘Central_locking’
1. You cannot select the value ‘Central_locking’ for EXTRAS.
2. At least one value other than ‘Central_locking’ must exist.
In conditions, a characteristic must be compared with explicit values:
$ROOT.EXTRAS = ‘ABS’
$ROOT.EXTRAS <> ‘ABS’
For the condition to be fulfilled in the first case, the value ‘ABS’ must be assigned to the root object.
However, other values can also be assigned to characteristic EXTRAS.For the condition to be fulfilled in the second case, the value ‘ABS’ must not be assigned to characteristic EXTRAS.
For more information on the syntax of comparisons between multiple-value characteristics in dependencies, see
Comparisons.Processing in the Inferences Section of Procedures and Actions
The INFERENCES section of actions and procedures can contain statements such as:
$SELF.EXTRAS = $ROOT.EXTRAS
This is allowed because the values of the root object $ROOT are inferred for the object currently being processed – $SELF.
IN
The following comparison cannot be used in single dependencies:
<multiple-value characteristic> IN ('Value1', Value2')
The condition is ambiguous.
It could mean either that at least one of the values must be entered for the characteristic or that all the values in the set must be entered.You can enter this condition in a constraint, because a constraint reads values individually.
However, you cannot use IN for multiple-value characteristics to define that a value must be set:
‘ABS’ IN EXTRAS
SPECIFIED
The following condition is fulfilled if one or more values is assigned to the characteristic:
SPECIFIED & <multiple-value characteristic>