In many modeling efforts, you may find that you need to replicate a model structure multiple times. For example, a demographic model might treat the aging of a population and be replicated for multiple ethnic groups in multiple areas. Conceptually, the model is very straightforward; visually, however, the structure takes up a lot of diagram space and can look confusing. Similarly, you might model a supply chain in which a supplier ships out of a single inventory to multiple customers. Conceptually, this structure is very straightforward. Diagrammatically, it can be appear quite complex. In a marketing model, you might repeatedly use a simple structure to keep track of customer affinity for several different product lines. In an ecological model, you might repeatedly use a simple structure to represent the different serial stages associated with plant succession.
In each of these cases, copy and paste is the most straightforward way to represent the multiple parallel model structures involved. Unfortunately, the associated visual complexity of the resulting model diagram can become hard to manage, both for the model builder and the model user.
Arrays provide a simple yet powerful mechanism for managing this visual complexity. By "encapsulating" parallel model structures, arrays can help you to present the essence of a situation in a simple diagram. Beneath the scenes, of course, arrays retain the richness of the disaggregated structure.
The following example shows how arrays can help you simplify a model diagram:
Using arrays in a model is straightforward. The process consists of the following three steps:
Define one or more dimensions and elements for the array.
Think of a dimension as a category. Each dimension contains a set of set of elements within that category. For example, if you create a dimension named "City", it might contain the elements "London", "Sarajevo", and "Tokyo." A dimension named "Mammal" might contain the elements "lion", "tiger", and "bear."
You define dimensions in the Array Editor dialog box. For more information about creating dimensions and elements, see Working with array dimensions and elements.
Transform model entities into arrayed entities.
After you have defined one or more dimensions, you can transform a non-arrayed entity into an arrayed entity. To do this, select the entity on the model diagram, and then select the Arrayed check box on the Array panel. For more information, see Creating arrayed entities.
Tip: You don't need to worry about transforming flows into arrayed flows; whenever you transform a stock into an arrayed stock, any attached flows are automatically transformed into arrayed entities as well.
Define the equation logic for arrayed entities.
For each arrayed entity, you need to define the initial value/equation for each element within the array. You can choose to apply a single value/equation to all elements in an array, or you can provide unique values/equations for each element. For more information, see Creating arrayed entities.