You are on page 1of 2

Problem

:

I have a user-created object in my model and want to update a state variable in the main model from
within that object. ** NOTE: This is an extension of the SimBit ‘ProcessModelWithinModel.spfx’.

Categories:

Building New Objects / Hierarchy

Key Concepts:

BasicNode, ContinueProcess, Delay Step, EndTransfer Step, Expression Property, ExternalNode, Object
Instance Property, ProcessStation, Release Step, Resource, Seize Step, Station Element, Submodel,
Transfer Step, State Property

Assumptions:

The SimBit ‘ProcessModelWithinModel.spfx’ is used as a baseline for this example. The steps show how
to add a state property reference to an object so that a state in the main model can be appropriately
updated.

Technical Approach:

A state type property will be utilized within the user-created object. Once the object is placed in a
model, the property will then reference the state defined within the model.

Details for Building the Model:

ProcessModelWithinModel.spfx
Open the SimBit ‘ProcessModelWithinModel.spfx and review the corresponding *.pdf file for
logic details.

Defining a State-Type Property
Within the Navigation bar, click on thte SeizeDelayRelease object.
Go to the Definitions window, Properties panel to add a new property to the object. This is done
by selecting Standard Property and then clicking on State within the pull -down list.
Rename the state ‘WhichState’ and change the Category Name to ‘Properties’ so that it appears
in the same area with the ResourceName and DelayTime properties for the object.

Assigning the State within the SeizeDelayRelease Object
Click on the Processes window of the SeizeDelayRelease object. After the Seize step, add an
Assign step.
Within the Assign step, right click on the State Variable Name property, select ‘Set Referenced
Property’ and click on ‘WhichState’. This will cause ‘WhichState’ to be placed in the property
field with a green arrow, indicating a reference from an object property.

there is a new property called WhichState. Notice in the Properties window. Defining Which State to Reference within the Object Click on the SeizeDelayRelease object within the Model’s Facility Window. States panel. . Defining the State within the Model Within the Navigation window. enter the value ‘WhichState + 1’. selecting and placing a Status Label and entering the Expression ‘Model_Count’. Within the New Value field. Within the Facility window of the model. under the category Properties. click on the Model and go to the Definitions tab. add an animated status label of this state by going to the Animation ribbon. which you will specify as ‘Model_Count’. Add a new Integer type State and change the Name to ‘Model_Count’. This will cause each token going through this process to increase the associated state by 1.