Set flow trigger

Overview and Key Concepts

The Set flow trigger activity sets an input or an output trigger on the specified object(s). It is equivalent to setting the input/output.triggerAmount property, or the input/output.triggerInterval property.

Typically this activity is followed by a Wait For Event activity awaiting the On Input or On Output event of the object.

Connectors

The Set flow trigger activity only allows one connector out. See Adding and Connecting Activities for more information.

Properties

The following image shows properties for the Set flow trigger activity:

Each of these properties will be explained in the following sections.

Name

Used to change the name of the activity. See Name for more information about this property.

Font

The Font button opens a window to edit the activity's background color and font properties. See Font for more information about this property.

Statistics

The Statistics button opens the activity's statistics window. See Statistics for more information about this property.

Object(s)/ Group / Array

Use the Object(s) / Group / Array box to specify the object(s) you want the activity to affect. You can specify a single object (using the eyedropper tool or a model.find() command), an object group (flat or nested) or an array of objects and/or groups. When a token enters the activity, the expression will be parsed recursively such that arrays of groups or groups will be properly handled.

Set trigger

Specify if you want the activity to set the trigger on the inflow volume or on the outflow volume.

Amount; Absolute / Relative / Interval

Enter an amount, or a calculation returning the amount. If the Object(s) / Group / Array field evaluates to multiple objects, the amount will be calculated for each object separately (and passed in as the involved parameter).

The radio buttons specify how this amount should be interpreted:

Absolute (at)

The flow trigger will be set on the exact input or output amount specified. If the cumulative flow of the object has already exceeded this amount, an error message will occur.

Relative (after)

The flow trigger will be set for the specified amount of flow after the current cumulative input or output amount. As long as the amount is a positive number, the trigger will always occur after the specified amount of flow has entered or left, measured as of this moment.

Interval (each)

The flow trigger will fire after the specified amount of flow, as for the 'relative (after)' option, but instead of firing once it will fire every time this amount of flow has entered or left, until the trigger interval is cancelled by setting the interval amount to zero, or setting a (one-off) trigger amount instead of an interval.

Condition

If the condition is not set to "Always", the activity will only perform its functionality when the condition returns true. If the Object(s) / Group / Array field evaluates to multiple objects, the condition will be checked for each object separately (and passed in as the involved parameter).

The dropdown suggests a few common conditions, such as only working on objects that currently have inflow, or are below their maximum content. You can use it to implement logical conditions (e.g. only open output if a tank is full), but also for model constraints (e.g. only do something with output port 2 if the involved object has at least two output objects).