The not attribute specifies a set of values that should be excluded from random selection.
<list>
or
/ not = [expression; expression; expression]Name | Type | Description |
---|---|---|
value | value | Any property, constant, or literal value. |
expression | expression | Any valid expression to be excluded from the selection pool. |
The not attribute is used to prevent a list from selecting certain values, such as the currently selected item in another list. If the selected item is equal to the current value of one of the expressions listed in the not command, then the item is returned to the random selection pool or skipped for sequential selection and another is selected.
Random selection is done on the fly, so if additional selection constraints such as maxRunSize or replace are in place, it may not be possible to satisfy them all on a give trial, especially if there are only a few remaining items in the selection pool. In that case, the list will suspend one of the constraints and try again. If it still can not satisfy the remaining constraints, it suspends another and tries again, and so forth. By default, the maxRunSize constraint is suspended first, then replace, and finally the not constraints. If a procedure requires that the constraints always be satisfied, pregenerate a set of selection sequences that satisfy the constraints and then randomly select one of the pregenerated sequences to use for a given session.
When specifying complex expressions such as equations or function calls, the list of expressions must be enclosed in square brackets '[]' and separated by semicolons ';'.
For simple items such as numbers, strings, properties and numeric ranges, items can be enclosed in parentheses and separated by spaces or commas. Note, when specifying a numeric range (e.g., 1-100), the characters within the range must NOT be separated by spaces.
The following list randomly selects a value from 1 to 10, but reselects if the value is equal to the currently selected item of <em>list.list1</em>.
<list list2>
/ items=[1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
/ selectionMode=random
/ not=[list.list1.currentValue]
</list>