Moving Resources in a Model

Because 1) an element can only interact with Resource Stores that are above it or at the same level within its Container path, and 2) if a Resource Type has multiple Stores within a particular Container path, the element can only access the Store that is closest to it, situations might arise where you may want to move Resources between Stores.

For example, if you had a Local Store of “Fuel”, as well as a Global Store of “Fuel”, if the Local Store was exhausted and the Global Store still had available Resources, elements would not be able to access the Global Store in order to meet their requirements.  As long as a Local Store exists that is available to the elements, this would be the only Store that could be accessed by those elements. To access the Global Store, therefore, you would need to move Resources from the Global Store to the Local Store.

This can be done, but you must manually program how and when this takes place.  The recommended way to do this is to use a combination of a Triggered Event and a Discrete Change element to remove the Resource from one Store (e.g., the Global Store) and deposit it in the other Store (e.g., the Local Store).

The specific steps involved in doing so are as follows:

1.  Add a Triggered Event element at a location in the model such that it can access the Store from which you want to remove Resources (e.g., if you are moving from a Global Store to a Local Store, the Triggered Event element should be above the scope of the Local Store).

2.  The Triggered Event element should have a Spend (Discrete) Resource Requirement that pulls Resources from the first Resource Store:

3.  Add a Discrete Change element that is triggered by the Triggered Event.  This element could be located either at the same location as the Triggered Event or at the location of the Store to which the Resources are being moved. The key point is that the Value for the Discrete Change should be the same as the Quantity that was specified for the Resource Requirement for the Triggered Event:

4.  Within the Store to which the Resource is being moved, specify a Discrete Addition that is the output from the Discrete Change element:

A view of this structure is shown below:

   Note: You cannot send (add) Resources to an inactive Container. If the Container is inactive, the Addition will be ignored.

   Note: If the process of moving the Resource takes time, you could represent this by adding a Discrete Change Delay after the Discrete Change element.

Related Topics…

Learn more about: