Search the Community
Showing results for tags 'reference'.
To model shelves, I am trying to create a series of custom "Shelf" objects (subclass of servers) located in a grid pattern. I used a spreadsheet to automatically calculate the coordinate locations and generate a name (string) for each object based on its position within the grid. With just the Shelf object types in the spreadsheet, can bind the file to my object reference table no problem, import the data, and populate the facility window with my objects. That part works fine! Next, since I have an aisle running between the rows of objects, I wanted to set it up so that the objects all face "inwards", ie. the input and output nodes for the objects are facing the aisle. Originally I thought of rotating the Shelf object, but I ran into 2 issues: first, I discovered that I can't set the Shelf yaw orientation from the table, so that's not going to work. Second, I realized that even when I rotate the Shelf in the facility window, the nodes do not rotate with their parent object. I decided I would leave the Shelf in the same orientation as it is placed, but I would just re-locate the input/output nodes to the opposite edge of the Shelf objects on the far side of the aisle. For this I would need to make sure I can set locations for the input/output nodes in the same object reference table. When I added a row to the object reference table from within Simio (prior to binding to a spreadsheet), a drop down appeared, and I could select the input or output nodes for any object that already existed in the table, and then define the node's location in the cartesian coordinate columns. When creating a node this way, the node location is still relative to the object, ie. I can drag the object in the facility window and the node moves relative to the object, which is perfect. This input/output node creation and relative location definition via table is exactly what I am trying to automate, but this is where I started running into problems. In my spreadsheet I used formulas to generate names for the nodes to match the formatting of the input and output nodes in Simio (ex. "Input@..."/"Output@..."). I also added a formula to assign all input node object types to BasicNodes and all output nodes to TransferNodes and calculate the desired location coordinates for the nodes. The spreadsheet I made has the same format as the table in Simio where I tested manually creating and positioning the nodes. The issue is that when I bind the table and import the spreadsheet data to my model, the node names automatically change and are no longer formatted to reference the parent object. Because of this, these name-changed node objects are created in addition to the input and output nodes that are created for each Shelf object. However, if I remove the binding and add a new row, once again I can find the node name in the drop down list and assign the coordinates manually, and the input/output node that references the parent object will move to where I send it. My question is: how can I set the input/output node locations for the objects when creating objects from a table? There are over 500 Shelf objects in the table so I do not want to locate them manually, but the automated method is not working either. The only idea that I have is to make a new object "Shelf2" and define the external view to have the nodes on the opposite side, but that seems like a less-than-idea solution because then I would have 2 custom objects to update and maintain, that are otherwise identical. I am hoping that I don't have to do this hacky solution but I am interested to see if anyone else has dealt with this and has ideas. Thanks!
I have a multiple combiners into which a single worker provides entities. While the worker is at a specific combiner, I want to check if that combiner's output buffer is full. I'd prefer not to create a separate process for each combiner as I have dozens. How do I code the process so that it is generic and that 1 process can work for any combiner? I'm hoping this is an easy question. Sorry if it's obvious. Thanks for your help.