In some cases, you may not want to trigger an element unless a particular required condition is met at the time that the triggering event occurs.
To facilitate these kind of triggers, GoldSim allows you to specify a Required Condition for a triggering event.
You add a Required Condition by pressing the More button on the Trigger dialog to expand it, and then selecting the Then check if Required Condition is True checkbox. When you do so, the Required Condition field becomes available. The field accepts any condition output or conditional expression.
If the condition is True when the triggering event occurs, the element is triggered; otherwise it is not triggered (i.e., the triggering event is ignored).
For example, suppose that you were simulating the performance of a dam, and you defined an event (e.g., a storm) which resulted in the failure of the dam. The dam only failed, however, if at the time the storm occurred, the dam’s spillway was degraded to a certain extent.
To simulate this, you could model the storm as a triggering event, monitor the spillway condition elsewhere in the model, and enter this as the Required Condition that must be met in order for the element to be triggered.
Your Triggering dialog might look like this.
Note: Triggered events are not “held” until the Required Condition is met (as they are for Precedence Conditions). If the condition is not True when the triggering event occurs, the triggering event is ignored (i.e., discarded).
Note: As a general rule, you should not specify both a Precedence Condtiona and a Required Condition. If you do specify both a Precedence Condition and a Required Condition, events are evaluated as follows: If the Precedence Conditions is True when the triggering event occurs, the Required Condition is evaluated immediately. If the Precedence Condition is False when the triggering event occurs, the Required Condition is not evaluated until the Precedence Condition become True.
Required Conditions can be used to simulate the equivalent of an If True triggering event (i.e., to trigger something when it is true rather than when it becomes true). To do so, simply use an On Changed trigger with ETime as the argument, and a Required Condition that is the actual If True condition: