Search the Community
Showing results for 'API reference'.
-
I second this idea. If we can directly assign string name to a object-reference state variable, then use the object-ref state variable as the Object, it will be a lot helpful. String concat is a very good one, for example , ModelEntity go through NodeA, we define its next destination as NodeA_a ....
-
Define a new property for a certain object
Marcel Favereau replied to Marcel Favereau's topic in SI General Discussions
Yes, and it did not work for me. The object-reference (server) property created (and named as "exampleVariable") does not appear in the property window of server objects. -
Define a new property for a certain object
jzhou replied to Marcel Favereau's topic in SI General Discussions
Did you create an object-reference type of properties? -
Changing Sequence table over time
Rebecca Obasi replied to antonio6vieira's topic in SI General Discussions
Ok I can do a trace and see what I find. Also, I do have different entity/job types getting processed. In my routing tables, I do have the entities specified in the table. I'm trying to use the "ChooseAlternateSequence" simbit as a reference. Is it possible to do this if you have more than one entity type? -
Changing Sequence table over time
Rebecca Obasi replied to antonio6vieira's topic in SI General Discussions
I'm trying to do something similar to do this where an order has 4 different routes or paths it can go (My model currently doesn't have paths). I created 3 separate sequence tables and created a process logic depending on if a certain workstation is already processing an order/entity, to go through this sequence. For some reason, whenever it gets to the "set row" step, there is a table reference error mentioning "no entries found" if though in the process step, I specify which row to start the new sequence. What is the reason behind this error? -
there are several easy ways to do this. 1) Subclass the Resource or Worker object with the only change is to add a property or state (ex PTime) to hold the processing time specific to that resource. 2) Put your process times in a table and reference the correct table row for the doctor that is working. The SimBit WorkerPoolWithEfficiency does something somewhat similar.
-
Hi all, I am building a simulation of a system with multiple separators which MemberOutput nodes two different routing policies can occur: 1. Standard Policy In the 'Standard Policy', each separator has its dedicated transporter assigned to it and entities arriving at the MemberOutputNode can only select the defined transporter. To this end, a DataTable has been constructed. 2. Power Hour policy In the 'Power Hour Policy', operations are shifted into a higher gear. We select a maximum number of three nearest transporters whose ride request is 0 and include them in the DataTable which specifies the Transporter Selection. Entities arriving at the MemberOutputNode can now request rides from any transporter in the DataTable. I tried to reference to a DataTable called 'TransporterSelection.EPT' in the Transport Logic of each MemberOutput Node. Each value in the EPT column is cross-referencing to a DataTable in which I try to assign the MemberInput Nodes as a Node Reference State Variable of the Transporter (EPT). Is there any way to dynamically assign more (or less for that matter) Transporters to a TransferNode? Hope that anyone knows how to do this! Cheers, Toon
-
Thank you Dave! Inspired by your approach, I defined two Node Reference State Variables for the Entity: EndDestination and NextNode. In the model Processes, I first determine the Entity State Variable EndDestination based on a DataTable with probabilities per destination node. Then, at routing decision points, I have created processes that evaluate the EndDestination node and set the next node for the unity based on that. Although it requires a bit of 'hard modeling', it works like a charm! Thanks
-
Experimentation Tab Different from Controls - solution?
MauricioBiolato replied to Grant S's topic in SI General Discussions
Try changing the reference property units to hours, but not from the Controls menu, do it from where you define the rp. Rds. -
Concatenating Reference States and Strings
Liz Millar replied to jfulton's topic in SI General Discussions
Unfortunately you are not able to concatenate those pieces together to get a State Variable reference that will work. You can really only piece things together, or search through and find part of something within a name, with a String. Strings are not able to be understood as a State Variable reference, nor converted to something that could be understood. Instead, I might suggest an approach with a Data Table. Although this adds a tedious step of putting everything in to a Data Table, it then becomes really easy to Search the Data Table for the State Variable you are looking for. I attached an example model for you to investigate. In this model, you need the Data Table with a String Column so that the Search step can look through this collection of Strings and find the String that Contains certain substrings. See the Search's Match Condition property and the String Contains function. Also, the Data Table could contain a State Property column which then references the State Variables you created in the Definitions tab. Or, you could use the State Columns and Assign the values right to the column. Happy Modeling! Liz StateVariableInDataTableExample.spfx -
Hi all, I want to create a list of tasks from data table which I will use in the server objects tasks sequence. When I want to refer to all of the properties of material requirements to data tables, I am facing a restriction as follows: a) I can refer the material "Action Type" (Consume\Produce) property from server object to data table by adding an "MaterialActionType" enumeration property to data table. b) If referencing in a) was NOT done, for the selected action type (lets say produce was selected), I can refer the "production type" (Material/Bill of Materials) property by adding a "MaterialOptions" enumeration property to data table. However, when I do the task in a) an additional row appears in server object, now showing both consumption type and production type in properties. Then I am unable to set reference to data table as in b) any more. Is it possible to refer BOTH "Action Type" (Consume/Produce) and "Material Options" (Material/BOM) simulatenously? If yes how? Could you please guide? Kind regards, Tolgahan
-
I have a problem with producing/consuming within my TaskSequence. I need multiple task operation (prepare -> work -> clean -> produce), where I'm also consuming/producing material defined inside my BOM table. When I'm trying to reference material requirements on the BOM table I get an error: "Could not determine the row to use in the referenced table or repeat group ...", references to the processing time and other parameters are working fine. If I set the task sequence reference to the BOM table, then material requirements works OK, but I could not add more than 1 task. I'm using version 15.241.27814 . Best regards, Žan
-
I think the title is pretty straight forward, but is there any way to utilize a reference state to then concatenate onto a string? I have a large number of states I'm tracking and they're all a function of the EntityType itself. So for the sake of efficiency I was hoping I could somehow take advantage of the reference but so for no dice considering they're 2 completely different states. Any tips/tricks I'm just not thinking of?
-
If anyone will come to the same problem. In Example3 --> table Delavci --> column Delavec you just need to change the property Auto-set Table Row Reference to "True".
-
Hi John, The entity is requesting a ride from the vehicle and the vehicle will seize the driver if available. However, if the vehicle is unable to seize the driver, it will reject the ride request and the entity will move to the Global Visit Request Queue, as you are seeing. You can attempt to have the Vehicle check again if it can now pick up the entity, and it will run the process to check if a driver is available. To have the Vehicle check the Global Request Queue to see if it can give a ride, use a PlanVisit step. Ensure that the Vehicle, in this case Vehicle_A, is the object executing this step. By default, the Vehicles are not aware if the Driver they need becomes available. You might consider using a Subscribe step on the Vehicle's OnInitialized process. This Subscribe step can watch for an Event and if that Event occurs, can trigger a related process. For example, the Vehicle might wait for the Driver.Released Event. When this Event occurs Process1 could run. In Process1, the Vehicle could execute the PlanVisit step. For more information, I recommend the Help pages in the Simio Reference Guide titled "PlanVisit" and "Subscribe". Happy Modeling!
-
Hi, I want to generate one type of product with one interarrival time. I have one source and one model entity. However, this entity can have different lengths following probabilities. Depending on these properties, the processing times at the servers will be shorter or longer. I tried to assign a state to the entity before this entity exits the source so ModelEntity.Length becomes DataLength.prob.randomrow. where DataLength is a table with the different lengths and the probabilities associated with those Lengths. The only thing is that it is a property and not a state, but I do not know how to do it in another way. Afterwards, I have different processing times at the servers depending on the different characteristics of my entity. For example, server1 will have different processing times depending on the length. How can I reference to the good processing time say I have added a column to the table DataLength with the associated processingtimes according to the lengths? Finally, I would also like keep track of those different lengths generated and see what the model produced in the end. Thank you for your help, Emilie
-
Hello!
In reference to your question "How to use Simio as an external simulation routine (respectively, how to control Simio from other software e.g., R)?", did you figure out an answer that suited your needs?I saw that your question post in SI General Discussions received a post from lstretton. What was the follow-up on that? I am unsure of where to go to get further information on the steps for that. I'm new on the forum.
My problem seems to run in line with yours. I have data that populates an excel csv file and I want to import that into Simio for my simulation. Eventually I would like to automate the runs of a bunch of difference replications, potentially with R or Python or something like that.
Thanks, ftiller
-
Entity Distance travelled on Transporter
ttarkan replied to ttarkan's topic in SI General Discussions
Thanks you so much for you help Liz. That's such an advanced modeling techinique I had never heard of before. I would never be able to figure it out myself. It has almost worked but correctly. It has recorded the results for some tallies correctly but recorded some tallies on the wrong tally. I think there is a problem with the set row feature somewhere. I have no problem with setting rows elsewhere in the model such as arrivals from production and arrivals from truck tables create entities correctly with all their state variables. The product list table also has unique "productnames" (entity instances), set as key and auto set-row property is set to true. I have added another coloumn with element tally statistics reference (DistanceOnForklift) to products table. I have auto created it as you suggested and turned on the auto-set row feature to true. Both my product names and tally statistics coloumn are set as key in same "products" table. But the tally step still doesnt record them to the correct tally statistics. Where am I doing wrong? Would you still be able to help me? Shall I send you the model in private message? Here is the formula I have inputted 'Products[Products.ProductName.RowForKey(ModelEntity.EntityType.Name)].DistanceOnForklift' and in the picture below you can see that tally step records into wrong tally element on last three entries. I would be glad if you could help me. -
Source working as per the work schedule for server and worker
Alen replied to Alen's topic in SI General Discussions
Hi Caleb, Appreciate your effort in providing a reference model. Process Logic approach was useful. Thanks A lot. Regards, Alen -
Entity Distance travelled on Transporter
Liz Millar replied to ttarkan's topic in SI General Discussions
I would recommend using a Data Table. One column could have all your entity types defined. The next column could be a Tally Statistic Element Reference Property. This column would match up the Tally statistic you want to correspond with the Entity Type. You could choose to auto-create these Tally Statistics from the Data Table. If you change the Tally Statistic Property's column Reference Type property from 'Reference' to 'Create', this will make the Tally Statistics for you. I recommend the Help page "Table-Based Elements (Auto-Create)" in Simio for more information. If your Entity Instances noted in the Data Table are unique, no duplicates, you can set that column as a Key. With that column as a Key, you could use just the Tally step and use the RowForKey expression. RowForKey will allow a key input to search for in that column. If the model entity is driving the process, you could use an expression like this for the Tally Statistic Name 'Table1[Table1.EntityInstanceProperty1.RowForKey(ModelEntityReference)].TallyStatisticProperty'. Since it seems this process will be on the OnRunEnding, it will not have a reference to a specific entity, so you will most likely need a Search step to find the entities still in the system. I would set the Search step to find Infinite things and let each entity reference exit on the found branch. If the EntityInstanceProperty column in your Data Table has the Auto-set Table Row Reference property to 'True', the entities will already know the row reference and your Tally step Tally Statistic Name property could be 'Table1.TallyStatisticProperty'. -
Hi, I am trying to build an object library for an airport terminal. For this, I build the objects as separate models and place them in a 'sampleairport' model for testing them all together. The 'sampleairport' model contains all the objects, so it has no issue referencing to properties from the placed objects. However the other way around does not seem possible. For example; I want the user to import a standard format flight schedule, which will be uploaded in the 'sampleaiport' model. Now I need to reference this table from the other models, but Simio does not allow me to do this? Is there a way I can reference the table or other properties from models in my other models? Thank you Jason
-
Assuming you are are using the prebuilt task sequencing logic in the server you could just add an add-on-process either after the predecessor task or before the successor task that delays for the given amount of time. If you are using a table to read these tasks add a column for the delay, make a model level process with a delay value of TaskTable.Delay. Then reference this process in the Before starting task or after completing task of the task sequence.
-
Let's see if I can elaborate... The following outlines the relevant characters in simio file "table_selection_by_name.spfx." Model->Definitions: Properties: OptionId (Entity Property, default=null) _SelectedTable (Table Property, default=tableOption1) States: RowId (integer, default=1) maxEntities (integer, default=2) ModelEntity->Definitions: States: _id (Integer, default=0) row_num (integer, default=0) temp (integer, default=0) Model->Facility: ModelEntity Types: Option1, Option2 Source1, Server1, Sink1 Source1->Entity Arrival Logic: Entity Type = OptionId (Reference Property) InterarrivalTime = 1 second Source1->Stopping Conditions->Maximum Arrivals = maxEntities Source1->Add-On Process Triggers->Created Entity = Source1_CreatedEntity Sink1->Add-On Process Triggers->Entered=Input_Sink1_Entered Model->Facility->Controls->General: OptionId = Option1 _SelectedTable = tableOption1 Model->Processes: Input@Sink1 Add-On Processes Input_Sink1_Entered: [Begin-> Tally(temp = ModelEntity.temp) End] Source1 Add-on Processes: Source1_CreatedEntity: ************************* [Begin->Decide1(IsOption1 = True)-> Assign(maxEntities = tableOption1.AvailableRowCount)-> SetRow(tableOption1, RowId)-> Assign(ModelEntity._id = tableOption1.id, ModelEntity.row_num = tableOption1.row_num, ModelEntity.temp = tableOption1.temp)-> Assign(RowId = RowId + 1)->End Decide1(IsOption1 = False)-> Decide2(IsOption2 = True)-> Assign(maxEntities = tableOption2.AvailableRowCount)-> SetRow(tableOption2, RowId)-> Assign(ModelEntity._id = tableOption2.id, ModelEntity.row_num = tableOption2.row_num, ModelEntity.temp = tableOption2.temp)-> Assign(RowId = RowId + 1)->End Decide2(IsOption2 = False)-> End] ************************* It is here that I could like to simply the logic using something like _SelectedTable instead of tableOption1 and tableOption2. I would like to know how to replace Source1_CreatedEntity's above step definitions with something like: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> SetRow(_SelectedTable, RowId) Assign(ModelEntity._id = _SelectedTable.id, ModelEntity.row_num = _SelectedTable.row_num, ModelEntity.temp = _SelectedTable.temp)-> Assign(RowId = RowId + 1)-> End] But this replacement does not work. The following works, but I'm searching for a way to do this without replacing the column name with an indexed value: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> Assign(ModelEntity._id = _SelectedTable.id[RowId, 1], ModelEntity.row_num = _SelectedTable[RowId, 2], ModelEntity.temp = _SelectedTable[RowId, 3] )-> Assign(RowId = RowId + 1)-> End]