In the meta-model, some parent-child relations are defined as flow relations. The result of this is that if the parent object has a child, the child is a flow consumed or produced by the parent object. A flow has both a producer and a consumer although one of them might be (at least temporarily) undefined i.e. unlinked.
Creating Flows with Add Existing Object and Add New Object
As a flow is an object, you can create flows in the same way you create objects. The only difference is that a flow has a direction: it is produced or consumed by its parent. By default, flows are produced by the parent object but you can change this in the Add New Object window (to modify the flow direction use the drop-down list at the bottom left-hand corner). You can also change the flow direction after its creation (see Changing the Direction of a Flow for more details).
Creating Flows with Drag-and-Drop
It is possible to duplicate an existing flow by doing a left-click drag-and-drop from the flow label. A new flow is created between the original producer and a new consumer receiving the dragged and dropped label.
Creating Flows with Link
It is also possible to create a flow by directly connecting the producing and consuming parents. This is done graphically in the Internal Block Diagram:
- Click on an anchor point on the flow producer (available anchor points appear in green when you pass the mouse cursor over the border of the object).
- Click on an anchor point on the flow consumer.
- Choose the type of the flow (if several types are available).
- Choose an existing flow or a new one (existing flows can only be chosen if flows of the chosen type are present in the linked objects).
- Choose a name for the flow.
Allocating Unlinked Flows
It is also possible to allocate a flow by going to its new producer/consumer and selecting Add New Object from the right-click menu of the object. Choose the correct flow type and select the flow in the Object Dictionary window of the type. Do not forget to verify that the direction of the flow (Produced/Consumed) is defined correctly. When all is in order, click Add.
Moving and Copying Flows
It is possible to allocate previously linked flows to new parents by doing a left-click drag-and-drop of the flow container. You can choose to move, copy or Deep Copy the flow. More information can be found in Moving, Copying and Pasting Objects.
Flows can also be copied with a left-click drag-and-drop of the flow label.