Simio
  • Candidate Library - Pipe & Enhanced Server

  • Do you have objects, models, libraries, path decorators, textures, symbols, custom API code, documentation, or anything else others might find useful? Please attach it here with a brief description.
Do you have objects, models, libraries, path decorators, textures, symbols, custom API code, documentation, or anything else others might find useful? Please attach it here with a brief description.
 #5585  by ncollins
 Mon Jun 16, 2014 1:43 pm
The Candidate Library is special library used to stage objects before moving them into the Standard or Flow Library. At some future date these objects may be moved “as-is”, or they may have some design changes before integrating them into the Standard/Flow Library. We encourage users to provide feedback on these objects so that any suggested changes can be reflected in their final implementations.

This version of Candidate Library has two objects: a Pipe and a Server. The Pipe is targeted to be added to the Flow Library and is an updated version of the Pipe in the Transportation Library. It is useful for modeling flow between two FlowNodes where travel speed and volume are important considerations. An example model is included (SimplePipeFlow)

The Server is targeted to replace the existing Server in the Standard Library. This new Server object has the exact same functionality as the existing Server but also supports multi-phase activities. This is useful in modeling situations where a number of activities take place at one location and each activity requires different resources. These activities can be specified either directly on the Server, or through the use of relational tables. This makes it much easier to model multi-phase activities such as found in healthcare, complex batch operations, or assembly operations. An example model is included (MultiphaseServer)

These objects have been made part of the Flow Library and the Server object in the Standard Library.
 #6090  by GreerAmy
 Wed Oct 29, 2014 9:32 pm
I had a few thoughts on the multi-phase server.

1) This is executing tasks sequentially. What about the cases where there are some tasks in parallel. For example, you go into a server and 4 tasks are done in parallel, once all 4 are complete, you start the next 3 in sequence, followed by the last 4 in parallel.
2) Each task can require an additional resource. How would we structure this to require multiple resources for some tasks, while only requiring 1 or none for others? For example, in healthcare, once you are in the room, maybe you need:
- nurse
- nurse & doctor
- doctor only
- nurse & doctor
- nurse only
Could you utilize lists to pass in these multi-requirement tasks? What about tasks that could be serviced by one of many resource types, could we somehow utilize lists again for that behavior?

Looping through a table to execute sequential delays is not very cumbersome if I need to do it on a project, so I don't see alot of gain with this multi-server. The development time gain is minimal, and there is a cost of adding another layer of complexity to the server object. However, if you address the above complexities, then I could see this multi-task server being powerful in reducing development time on some projects.

Regardless of whether this makes it into a future release as a standard, can we please take advantage of the ability to pass arguments to create smaller, more readable processes in the Simio objects. Some of the processes on Simio objects can get so large, it is hard to modify them when we have a legitimate need to sub-process. Everything in red after the decide block on this candidate server could be put in another process called "ExecuteServerTasks" That alone would minimize the "complexity add" to the server object.

Thanks