# The Decision Process Diamond

The Decision Process Diamond (DPD) is a mechanism for managing the diagram complexity associated with the representation of decision processes within your models. With DPDs, you can "bury" the intricacies of the decision rules that drive the flows into a "black box" (actually, a lavender diamond). On the surface, you and the users of your models can clearly see both the inputs and the outputs associated with a decision process. When the need arises, you can "drill down" into the detail of the decision process itself. As a result, your models can maintain a bi-focal perspective, displaying the macro- and micro-structure as needed.

This section describes the mechanical operation of the DPD. On-disk tutorials and sample models illustrate the use of the DPD.

Creating a Decision Process Diamond: To create a DPD, select the object from the palette on the Map/Model level. As you move the cursor onto the diagram, it will change to a diamond-shaped DPD icon. Click once to deposit the icon in the desired location.

Basic Manipulations: Opening, Closing, Selecting, Moving and Resizing: When you open a DPD, you obtain a space within which you can place the decision logic that controls a flow. Figure 4-46 identifies the components of a DPD, and illustrates how to open, close, select, move and resize its space.

Figure 4-46 Opening, Closing, Selecting, Moving and Resizing a DPD

The software requires that Decision Process Diamond spaces be drawn below their icons. As a result, the software will enforce a minimum 40-pixel distance between the bottom of the DPD icon and the top of its associated space. In addition, the software will not allow you to move either the left or right vertical border of the space beyond the horizontal center of the DPDicon.

As you create DPDs, it is important to note that their associated spaces can overlap one another. While the software will allow Sub-model spaces to overlap one another, only one of the overlapping Sub-model spaces can be open at a time. When you open one overlapping sub-model space, all other overlapping sub-model spaces will be closed. As you move DPD spaces on the diagram, the software will display the outline of other spaces if a conflict is about to occur.

Finally, note that it's possible to import a picture and type comments into the DPD's icon. With the DPD space open, a control-double click (Windows) or command-double click (Macintosh) on the DPD icon will take you to the icon's dialog. There, if you wish, you can document the DPD.

Incorporating DPDs into your models: As you construct a model, you will often find that a 2-step process is the most effective vehicle for incorporating DPDs into the model structure. After you have placed a DPD on the diagram, the first step is to use information and action connectors to indicate the key linkages into and out of the decision process. As shown in Figure 4-47, only information connectors are allowed to go into a DPD (after all, the input to decisions is always information). Both information and action connectors can emanate from a DPD.

Figure 4-47 Main Diagram Layer Mapping With Decision Process Diamonds

Once you have created the main level map, showing the key information inputs into and outputs from the DPD, you can drill down into the DPD and begin to construct the micro-level decision logic. As shown in Figure 4-48, within the DPD space you will have access to "nubs" that reflect the connections you have made on the main level. To connect the nubs to the relevant decision logic, simply drag and drop them on the appropriate DPD space model entities.

Figure 4-48 Working With Nubs in the DPD Space

Working Within a DPD Space: When a DPD is open, all Map/Model level building blocks are available to you, as are graphs, tables, Numeric Displays, and Text Blocks. To create a map within a DPD, simply connect stocks, flows, converters and connectors as you would on the main level. Your map can be as detailed as you'd like, although typically your DPD will house the "meatballs and spaghetti" of converter logic, and thus will contain few stocks and flows. As you create structure within a space, you should be aware of the following rules of grammar:

- The stock and flow structure within a DPD space must be self-contained. The software will not allow you draw a flow across the boundary of a DPD space. However, you can draw connections between a DPD space and the diagram, either directly or using Nubs.

- You cannot put a Sector Frame or a button within a DPD. These objects will be gray, as long as you have one or more DPD and/or Sub-models open.

- You cannot turn a stock within a DPD space into a Sub-model. You cannot place a DPD within another DPD space. The software supports only one level of drill-down.

- You cannot create an arrayed stock or flow within a DPD.

Modifying Main Level When DPD Spaces Are Open: Whenever one or more DPD spaces are open on the diagram, the software assumes that you want to work within one of them. As a result, all entities on the main diagram level are gray (this can be disabled within the Model Prefs... dialog - see Chapter 3 for details).

In addition, whenever you move the cursor outside of a DPD space, it will change to an international prohibition symbol (Ø). When you try to accomplish something with the Ø cursor, all you'll get is a "beep" from the software. To override the Ø and gain the use of building blocks, tools and objects on the main level, depress the control key (Windows) or command key (Macintosh). For example, to place a converter on the main level while a DPD space is open, you can select the converter. Then, control-click (Windows) or command-click (Macintosh) somewhere on the diagram to deposit the converter. To open some main-level entity, control-double-click it (Windows) or command-double-click it (Macintosh).

Brief Note on Two-Position: Whenever one or more DPDs exist in the model, main level building blocks and objects can have two positions. The first position is the position that you set for the building block or object, when all Sub-models are closed. The second position is the one that you establish when one or more Sub-models is open on the diagram.

Establishing these two positions is easy. To establish the first position, simply use the Hand tool to move the building block or object to the desired location while all DPDs are closed. To establish the second position, open the DPD and then control-click (Windows) or command-click (Macintosh) and move the main level building block or object. When all DPDs are closed, main level building blocks and objects will assume their first position. When one or more DPDs are open, the entities on the main level will move to their second position.

Two-position provides a nifty mechanism for keeping your diagram tidy. Occasionally, however, it can get out of control. To kill all second-position information, simply choose Clear Second Position from the model menu. For more detail on two-position, see the discussion in Chapter 9 on Sub-Models.