Jump to content
Simio Forum


  • Content Count

  • Joined

  • Last visited

  • Days Won


CWatson last won the day on November 20

CWatson had the most liked content!

Community Reputation

1 Neutral


About CWatson

  • Rank
    Senior Application Engineer


Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. CWatson

    Checking server status

    The various resource type objects, such as Server, Combiner, Resource, etc. as well as moveable resources, such as Workers and Vehicles have Resource States that are automatically assigned by Simio. See the List States page in Simio for a listing of the resource states for each object. You can evaluate the state by using the ResourceName.ResourceState in an expression, such as in a Decide step - Server1.ResourceState == 3. These resource states can also easily be viewed by clicking on the object itself and going to the Active Symbol section of the Symbols ribbon to display the animation symbol and listing of the various states and their associated numbers.
  2. CWatson

    Search step

    What are you trying to do with the Search? How is the process that contains the search triggered? If you can provide either the model or some details of what you are attempting to do, it would be helpful.
  3. CWatson

    Entity selection from queue

    The easiest way to do this dynamically is to use the Dynamic Selection Rule property on the Server (or other object, such as Combiner, Worker, etc.). You can use the 'Standard Dispatching Rule' option for that property to then include a Dispatching Rule, such as FirstInQueue, LeastSetupTime, EarliestDueDate, LargestPriorityValue, etc. This allows you to specify a TieBreak Rule as well. Using the dynamic selection will not determine which entity will be selected from the queue until the resource (object) has released an entity and is available.
  4. CWatson

    Entire Model Schedule

    Work Schedules can also be applied to other Fixed objects, such as Server, Combiner, Separator, as well as stationary resources. I suppose the question would be - how do you generate your entities (arrival table, time varying arrivals, interarrival rates, etc.) and what would you like to happen to entities when the 'model' is off shift -- do you stop creating entities/orders - what happens to in progress materials (do they clear out like a bank at end of day or stay in system like a mfg plant.
  5. CWatson

    Changing physical position of nodes via procedures

    In addition, we've added the capability to have various Simio objects 'automatically' created in their physical x/y/z locations from data tables. For an example of this, see the SchedulingDiscretePartProduction.spfx example (Support ribbon / Examples) and review the Resources data table. A column of type 'Object Type' of Object Reference specifies the type of object to create. An 'Object Type' column, Resource Name, then uses that 'ObjectType' column as its property ObjectType with the Default Value Instantiation set to 'AutoCreateInstance'. The XLocation / ZLocation columns are then used within the Initial Object Offset properties. Moving the node (or whatever object) within the Facility window then changes the XLocation/ZLocation values. This table automatically generated the Facility window contents.
  6. CWatson

    Four entities with different process time

    We have a number of SimBits that include processing data within tables - perhaps search Sample SimBit Solutions (Support Ribbon) and look under the Data Tables section for multiple examples and see what may be similar to what you are trying to do.
  7. CWatson

    Choose the empty queue

    We have a SimBit titled 'SelectServerWithShortestLine' in which there are 3 servers to select between and the output node for the Source provides the logic for the selection. The Server input nodes are put into a NodeList named 'Servers'. This list is then used to select between the members based on a Selection Goal 'SmallestValue' based on the expression 'Candidate.Node.AssociatedStationLoad'. The associated station 'load' is defined as the sum of current entities en route to the node intending to enter the stations, plus the current entities already arrived to the node but still waiting to enter the stations, plus the current entities occupying the stations. This can be used whether or not the capacity of the input buffers is specified for the Servers.
  8. CWatson

    Wait to seize until head of queue

    If you have a Source that creates EntityType1 (emergency patients, for example), and a second Source that creates EntityType2 (non-emergency patients), you will need 2 ModelEntity instances in the model (EntityType1 / EntityType2). Within each of those entity types, specify an Initial Priority value (i.e., EntityType1 - emergency with priority 1, while EntityType 2 - non-emergency with priority 2). Then, within the Server, change the Ranking Rule property from the default of 'First In First Out' to 'Smallest Value First' with the Ranking Expression as default of 'Entity.Priority' - it will then automatically use the entity priority specified to 'sort' the entities in the queue, having priority 1 patients in front of priority 2 patients.
  9. To include rework to go back through a Server, for example, simply place a link (path, conveyor, etc.) from the output node back to the input node of the Server (and also include a link path to the next Server for processing or Sink for the majority of entities). Then, within the Selection Weight property of the link, you can specify the % of entities that go to each of the links (rework/continue processing).
  10. CWatson

    A table link to arrival resource

    You may wish to look at several SimBits (under Support ribbon > Sample SimBit Solutions) including 'AppointmentArrivals' and 'SourceWithRateTable' for creating entity arrivals into the system.
  11. CWatson

    Wait step

    Please either attach your model to this forum posting OR send it to support@simio.com.
  12. CWatson

    Wait step

    Within the Wait step, you can have the an entity Wait until the Event Name specified. The Event Name could be something like TransferNode1.Entered, for example, so that the entity (A) waits until entity (B) enters or exits a certain input or output node.
  13. CWatson

    Changing model entity type while routing

    You may wish to look at the SimBit (see Simio, Support ribbon, Sample SimBit Solutions) named 'ChooseAlternateSequence' that includes two sequence tables in the model and some entities have their sequence changed during the simulation run from the 'Normal Sequence' table to the 'Adjustment Sequence' table using the SetRow step in a process.
  14. CWatson

    Displaying a status message

    Depending on your model, you could use a status variable for the path (or multiple ones for multiple paths) where you use the Entered and Reached End add on processes to check the status variable (add 1 each time entered or reached end to max 3, etc.) and when that occurs either have a status label or floor label expression display something on the animation. Alternatively, you could use the Notify step to pause the simulation when the xth entity enters/exits the path.
  15. CWatson

    Assigning a Workschedule to a Source

    Sources don't have associated workschedules for creating entities. There is an Arrival Mode property on the Source that allows entities to be created in different ways. Please see the SimBits (Support panel / Sample SimBit Solutions) named Appointment Arrivals or Source with Rate Table. One option would be to have a Resource with a workschedule that 'controls' the number of entities created in the Source, or the Entities Per Arrival property. To do this, you would create a state variable, let's say HowManyEntities. Within your source, set the Entities Per Arrival to 'HowManyEntities'. Set up the Resource with the workschedule for when you'd like entities to be generated and when not (i.e., so that when capacity is 1, you will change HowManyEntities = 1 and when capacity is 0, you will assign HowManyEntities = 0. Within the Processes window, you can have a process, Process1, that is triggered by 'Resource1.CapacityChanged'. Within that process, have a Decide step that checks the capacity and assigns the correct value for HowManyEntities. The Source then will generate entities using the Interarrival Time specified but based on the workschedule changes of Resource1.