Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


dsturrock last won the day on September 19

dsturrock had the most liked content!

Community Reputation

7 Neutral


About dsturrock

  • Rank
    Vice President of Operations 
  • Birthday September 29


Recent Profile Visitors

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

  1. dsturrock

    Combiner does not combine entities

    Without a model its difficult to tell your problem. One common problem is perhaps you have not left enough space in your input buffer - the entire batch must fit. For example if you are combining groups of 10 your member input buffer must hold at least 10 and your parent input buffer must hold at least 1.
  2. dsturrock

    Tandeem Server in Simio Design 10

    I think I know which video you are mentioning and it is quite old - perhaps from Simio 1.0. Many things, especially building objects, have gotten much easier since then. The interface you still mentioned is still available -- it is the External view found under the Definitions tab. But there is a much easier way now. In my classes, I typically give a demonstration where I start by building a TandemServer, then hierarchically build 3-4 more objects, revise all the objects, save the project as a library, then load that library and build a model from that new library - all in the space of 10 minutes! I have attached a very informally recorded snippet of a class. Perhaps it will be helpful. BuildingObjects_QuickDemo.mp4
  3. dsturrock

    Transfer Node, Transfer time

    Either in the Load Time property or the Loaded add-on process trigger of the object (let's say Worker1) you could add an expression something like this: (Worker1[1].CurrentNode==TransferNode1)* 5 to get a delay of 5 only when at that specific node.
  4. dsturrock

    Parent entity not behaving as expected

    If you want to repeat a sequence or move to any other step in the sequence, you need to use the SetRow step to set the current row in it's table to the step you want to execute.
  5. While I think all approaches mentioned above are good depending on the situation, I'll mention one more advanced approach, perhaps just for the educational value. While most people think of balking and reneging as a Server-type of option, it is actually implemented as a feature on every Station. So another approach, particularly if you encountered this situation a lot, might be to subclass the Server and change the properties of the Processing station to implement reneging on that station.
  6. dsturrock

    Table indices & search function

    I agree that this would be much easier in simple applications. But I expect that if you had large tables, relational tables, or any complex situations, you would want the options that are available on the Search or Find steps. The attached figure shows some of those options and how you would do a simple search. But as you said, this requires you to run a process which is clearly not as easy as an in-line function.
  7. There are several ways. One very efficient way to to simply hard code the row number for each object. So if Server7 happened to be a type of machine2 (in row 2) its process time expression could be machineProperties[2].ProcessingTime. A bit more difficult is to use a custom server (call it myServer) that has a myRow state. On initialization each myServer would search the table to find its row and store that in its myRow state. Then, its process time expression would be machineProperties[myRow].ProcessingTime.
  8. dsturrock

    Extras Library

    I just reposted what was previously there.
  9. Yes, right click on the scenario row that you want and select Copy this scenario's control values to the model
  10. dsturrock

    Machine Learning and Simio

    Simio does not have a specific machine learning feature, but many people still implement a form of machine learning in one of two ways: 1) Data-driven models, and particularly data-generated models, will improve their operation with better data. As you system runs, and the data improves, the model will automatically improve. 2) Particularly in scheduling applications - a model is never static. Every time your run a model and discover the possibility of creating a better solution (better schedule) you manually improve the built-in heuristics to it generates a better solution the next time.
  11. dsturrock

    Help a Noob Create Entities

    Use the Entities Per Arrival property on the Source
  12. dsturrock

    Fixed objects

    Right click on an object and select Lock Edits:
  13. dsturrock

    Moving Worker to a-priori unknown position

    Entities don't have a facility view , so they can't contain nodes, so they cannot themselves be a destination. --One option is that when the machine fails, have it move to a node to fail, and then have the worker go to that node to work on it. --Another possible approach is to model the machine as a node or a server. As long as there are no links to the node(s), you can use the RelocateObject user defined step to move the object around at runtime. Then you could move the worker through free space to get to the machine's current location.
  14. Actually you already can access the states and properties inside an object. For example, if I have a custom object named Dave1 that has a property named Spouse, it is fine to have a response named Dave1.Spouse. And you can do that with no knowledge ahead of time about how components of Dave will be used. To put a finer point on it, I think what you are asking is to be able to change the value of a property inside an object during initialization and to expose that as a control. Since you obviously don't want EVERY property in EVERY object exposed as controls, you need to have a way of specifying which properties should be exposed. I think the only way to do that now is to defined it as a referenced property in that object, and then pass a property value into that from the model.
  15. dsturrock

    Combine several entities in to one entity

    It's not appropriate for all situations, but the easiest way to solve this problem is to represent the component parts as Materials (an element) and define a Bill of Materials (BOM) that must be Consumed to create your new assembly. The big downside to this approach is the inability to animate the movement of the component materials. But if you can work around that limitation, this approach is MUCH easier.