Jump to content

dsturrock

Simio Employee
  • Posts

    1,654
  • Joined

  • Last visited

  • Days Won

    52

Everything posted by dsturrock

  1. Yes, there are several ways you could approach this. You can use a process to search the links or Maybe put all the possible destinations on a list and select the destination based on the link or Maybe use a clever link weight expression?
  2. Look at the Arrival Table option on Source.
  3. Probably something like a Decide based on : Server1.Capacity.Remaining > 0 with the False branch connected to a Wait on: Output@Server1.Exited
  4. Your guess is correct. The capacity units are integer. It will accept an expression, but the result is truncated to an integer. You are also correct that you could model it by giving the nurse a capacity of 4 and then have each patient seizing one unit of it. Actually this approach makes sense if you think of it not as the number of nurses, but rather the number of patients a nurse can concurrently service - somewhat similar to the rider capacity of of a vehicle.
  5. A single source object can only reference a single rate table. To have entities created according to different rate tables you must use multiple source objects.
  6. I understand your request, but we keep the left hand side of the assign to listing only a couple levels to keep it simpler. When you need more depth like in this case, I recommend just using the expression editor (from the right side) to locate what you need, then copy it to the left side. That is in fact what I did here. We will explore if there is a good way to better expose the full possible range of assignments without making it too complex.
  7. You can reference the member via the parent, like ModelEntity.BatchMembers.FirstItem.ModelEntity.Priority so you can transfer values directly.
  8. Vehicles represent equipment on which statistics are kept. If you destroy the vehicle during a run, from a statistical standpoint it never existed.
  9. 1) You don't mention why you need the API but the first thing I would do is revisit that decision. It is rare that Simio modelers actually need the API - often people use it because that is how they have gotten around limitations in other products but there is probably a better way within Simio. 2) I don't understand the need for the process and event. Each channel can have a state (e.g. Channel1.WIP) that increments and decrements as entities enter and leave. The "driver" simply examines that state.
  10. 1) You don't have to consistently move BySequence. You can take detours off the sequence. For example you may normally travel A-B-C-D but if you fail at B you might instead move (off sequence) to E. 2) You can use SetRow to change your sequence or the sequence step the entity is executing. 3) {Advanced concept alert}Unless you are using Enterprise Edition, each cell in a table is a property (e.g. Row 5, Column 3 is a property), but the contents of a cell can be defined as a state. Since its a property you cannot change the definition of a cell during runtime, but if that cell definition is referring to a state, you can change the value of that state. So you can create a model state of type NodeReferenceProperty called MyDest. Then in the destination column of the sequence table manually type in MyDest. Each time you execute that sequence step it will evaluate the current value of the state MyDest and send the entity to that location.
  11. I am not sure I am reading this correctly, but it sounds like you want each of your hundred+ entities to be generated on its own arrival stream. In the Simio library, the Source is the only object/method for generating arrival streams. While the Source can certainly generate multiple entity types from one arrival stream, each source can have only 1 arrival stream You will either need to use multiple Sources or at least take a process approach with a Timer behind each arrival stream.
  12. Or, in many cases, just creating the 3 arrays and using the Find step instead of the Search step will be sufficient.
  13. 1) If you are using Enterprise Edition, you can have outputs (states) in tables. Otherwise tables are limited to containing properties. 2) It is possible to create a number of states and reference that state in the table property. But this would probably be tedious and I don't recommend this approach. 3) I think what you probably need is a state array. If you parallel your table (e.g. table row 5 corresponds to array index 5) then it should be easy to use. You can even reference the table for initial values and automatically scale the array to match the table if you want. This sounds like your best approach if you are not using Enterprise Edition.
  14. No, I think it was just based on the base "Node Class" from the engine.
  15. Look in the Shared Items forum and the API forum for examples of building models from data files.
  16. Please contact simio support for license-specific details.
  17. The Materials and Bill of Materials features on the Workstation object provides similar capability, but using materials (consumable items) rather than objects.
  18. If this is reproducible, please send an example and supporting information to Simio Support.
  19. I can't tell from a picture the details of what this object can or can't do, but one of the nice things about Simio is the ease of building your own objects to perform exactly as you wish. I look forward to seeing your object in the Shared Items forum. (Another implementation of Combiner is already there...)
  20. One way to do this is to use an Arrival Type of Arrival Table.
  21. The order of simultaneous events is determined by their position in the heap, and the specific algorithms used for sorting and removing events from the heap. That said, it can appear that it is random because it is hard for users to predict and control. The easiest thing to do is to avoid simultaneous events by adding very small adjustments. For example, the first B could be offset by .00001 and the first C could be offset by .00002 seconds. This is unlikely to impact the model behavior in most situations except that it will make your events happen in a predictable order (in this case A-B-C). Another approach that works in some instances is that you can force a particular event to be pushed to the end of the current event calendar (e.g. make it the new "last" event to be executed at a given time). You can do this by specifying a delay of time Math.Epsilon.
  22. The purpose of this Simio quick reference card is to summarize the key points that a student or a routine user needs while building a new model. You can keep this handy while building a model. Contributed By: Ayedh Almutairi, University of Pittsburgh Simio Quick Reference Card.pdfSimio Quick Reference Card.docx
  23. It is a good and fair request, and I hope you get valuable responses. In the interim, here are a few files that may be helpful. SimioComparisonChart.pdfSimioResponseToCustomerRequirements.pdfSimioProductMatrixCommercial2.pdf
  24. Simio models are compatible up and down the product line (except between academic and commercial). In general, when moving to a lower capability product the model will still work, but features may not be visible and/or changeable. For example: --When an Enterprise model is run in Team edition, you will not be able to see the logs and Gantt charts. --When a Design model is run in Express, you can still run the processes, but you will not be able to see or change them. I don't know the specifics of the table states availability, but I expect that the model will still run fine, but the table states will not be configurable and may possibly not be visible.
×
×
  • Create New...