Jump to content

Welcome to the Simio Forum

Welcome to the Simio Forum! Experience the full experience of the forum by becoming a Simio Insider!


New Software Release

Our latest release, Simio 10.174, will be live in July 2018!

Save the Date!

Simio Sync is May 14-15, 2018! More details coming next month.


  • Content count

  • Joined

  • Last visited

Community Reputation

0 Neutral

1 Follower

About gtwirth

  • Rank
    Scheduling Product Manager
  • Birthday July 29


    Business Development Manager

Recent Profile Visitors

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

  1. With Simio 10.165, you should use the new AutoCreateInstance capabilities in Simio. First, create your objects using a data table (see. C:\Users\Public\Documents\Simio\Examples\SchedulingDiscretePartProduction.spfx). Then, add 2 columns to the Resources table (Latitude and Longitude). Lastly, use the MoveObjectsBasedOnLatLong add-in (attached to this post) to move the objects in the model based on lat long. You will see the XLocation and ZLocation update automaticall in the Resources table. YLocation is not needed. YLocation is height. In the attached model, the origin is our office in Pittsburgh. The objects are placed correctly on the map via GIS. MoveObjectsBasedOnLatLongDLL.zip MoveObjectsBasedOnLatLongCode.zip MoveObjectsBasedOnLatLong.spfx
  2. gtwirth

    Cannot build .DLL

    You need to update the Simio references in the project and set the copy local property = False on each reference. Then, build / compile over the existing DLL in ...UserExtensions\SimioTravelSteeringBehaviors
  3. Attached are the files, code and an example of how to automatically run a schedule by dropping a file into a folder. See "SetupRunSchedule.docx" Updated 2017-10-29....Added the ability to add downtimes for Resources in the Event.csv. These will be read into the model prior to running Plan. ResourceName,ExceptionStart,ExceptionEnd,ExceptionDescription Cut1,12/1/2016 12:00:00 PM,12/2/2016 4:00:00 PM,Short Breakdown Cut2,12/1/2016 12:00:00 PM,12/12/2016 11:00:00 PM,Long Breakdown Updated 2017-07-28....When the schedule is run, it now produces a file called "ExportSchedule.xml" that contains data from the resource usage log and target results. <?xml version="1.0" standalone="yes"?> Order05 0.861229915616692 Cut2 2016-12-01T08:00:05 2016-12-01T16:18:05 Order04 0.861229915616692 Cut1 2016-12-01T08:00:06 2016-12-01T11:00:06 Order03 0.861229915616692 Weld2 2016-12-01T08:00:15 2016-12-01T10:18:15 Order03 0.861229915616692 Resource2 2016-12-01T08:00:15 2016-12-01T10:18:15 Order01 0.861229915616692 Weld1 2016-12-01T08:00:17 2016-12-01T11:42:17 Order01 0.861229915616692 Resource1 2016-12-01T08:00:17 2016-12-01T11:42:17 Order03 0.861229915616692 Finish1 2016-12-01T10:18:22 2016-12-01T16:18:22 Order10 0.861229915616692 Cut1 2016-12-01T11:00:08 2016-12-01T15:54:08 Order04 0.861229915616692 Weld2 2016-12-01T11:00:16 2016-12-01T15:24:16 Order04 0.861229915616692 Resource2 2016-12-01T11:00:16 2016-12-01T15:24:16 Order01 0.861229915616692 Shape1 2016-12-01T11:42:30 2016-12-02T08:30:30 Order04 0.861229915616692 Finish2 2016-12-01T15:24:23 2016-12-02T11:24:23 Order11 0.861229915616692 Cut1 2016-12-01T15:54:11 2016-12-02T10:48:11 Order10 0.861229915616692 Weld1 2016-12-01T15:54:21 2016-12-02T10:18:21 Order10 0.861229915616692 Resource1 2016-12-01T15:54:21 2016-12-02T10:18:21 Order06 0.138770084383308 Cut2 2016-12-01T16:18:07 2016-12-02T14:18:07 Order05 0.861229915616692 Shape2 2016-12-01T16:18:15 2016-12-02T13:06:15 Order01 0.861229915616692 Finish1 2016-12-02T08:30:41 2016-12-02T13:54:41 Order16 0.861229915616692 Cut1 2016-12-02T10:48:14 2016-12-02T15:42:14 Order11 0.861229915616692 Weld1 2016-12-02T10:48:24 2016-12-02T15:12:24 Order11 0.861229915616692 Resource1 2016-12-02T10:48:24 2016-12-02T15:12:24 Order10 0.861229915616692 Finish2 2016-12-02T11:24:25 2016-12-05T08:24:25 Order05 0.861229915616692 Finish1 2016-12-02T13:54:44 2016-12-05T09:18:44 Order07 0.138770084383308 Cut2 2016-12-02T14:18:10 2016-12-05T11:18:10 Order06 0.138770084383308 Shape1 2016-12-02T14:18:19 2016-12-05T10:06:19 Order20 0.861229915616692 Cut1 2016-12-02T15:42:17 2016-12-05T10:36:17 Order16 0.861229915616692 Weld1 2016-12-02T15:42:26 2016-12-05T10:06:26 Order16 0.861229915616692 Resource1 2016-12-02T15:42:26 2016-12-05T10:06:26 Order11 0.861229915616692 Finish2 2016-12-05T08:24:26 2016-12-05T14:24:26 Order06 0.138770084383308 Finish1 2016-12-05T10:06:30 2016-12-05T15:30:30 Order21 0.861229915616692 Cut1 2016-12-05T10:36:20 2016-12-05T15:30:20 Order20 0.861229915616692 Weld1 2016-12-05T10:36:29 2016-12-05T15:00:29 Order20 0.861229915616692 Resource1 2016-12-05T10:36:29 2016-12-05T15:00:29 Order13 0.861229915616692 Cut2 2016-12-05T11:18:12 2016-12-06T09:18:12 Order07 0.138770084383308 Shape1 2016-12-05T11:18:22 2016-12-06T08:06:22 Order16 0.861229915616692 Finish2 2016-12-05T14:24:28 2016-12-06T10:24:28 Order26 0.861229915616692 Cut1 2016-12-05T15:30:22 2016-12-06T10:24:22 Order21 0.861229915616692 Weld1 2016-12-05T15:30:32 2016-12-06T09:54:32 Order21 0.861229915616692 Resource1 2016-12-05T15:30:32 2016-12-06T09:54:32 Order20 0.861229915616692 Finish1 2016-12-05T15:30:33 2016-12-06T11:30:33 Order15 0.861229915616692 Cut2 2016-12-06T09:18:14 2016-12-06T16:18:14 Order13 0.861229915616692 Shape1 2016-12-06T09:18:24 2016-12-06T15:06:24 Order17 0.861229915616692 Cut1 2016-12-06T10:24:25 2016-12-07T14:24:25 Order07 0.138770084383308 Finish2 2016-12-06T10:24:30 2016-12-06T15:48:30 Order26 0.861229915616692 Weld1 2016-12-06T10:24:35 2016-12-06T14:48:35 Order26 0.861229915616692 Resource1 2016-12-06T10:24:35 2016-12-06T14:48:35 Order21 0.861229915616692 Finish1 2016-12-06T11:30:35 2016-12-07T08:30:35 Order26 0.861229915616692 Finish2 2016-12-06T15:48:32 2016-12-07T11:48:32 Order23 0.861229915616692 Cut2 2016-12-06T16:18:17 2016-12-07T14:18:17 Order15 0.861229915616692 Shape1 2016-12-06T16:18:26 2016-12-07T13:06:26 Order13 0.861229915616692 Finish1 2016-12-07T08:30:37 2016-12-07T13:54:37 Order15 0.861229915616692 Finish2 2016-12-07T13:06:36 2016-12-08T08:30:36 Order25 0.861229915616692 Cut2 2016-12-07T14:18:19 2016-12-08T11:18:19 Order23 0.861229915616692 Shape1 2016-12-07T14:18:28 2016-12-08T10:06:28 Order27 0.861229915616692 Cut1 2016-12-07T14:24:28 2016-12-08T11:24:28 Order17 0.861229915616692 Shape2 2016-12-07T14:24:33 2016-12-08T10:12:33 Order23 0.861229915616692 Finish1 2016-12-08T10:06:39 2016-12-08T15:30:39 Order17 0.861229915616692 Finish2 2016-12-08T10:12:40 2016-12-08T15:36:40 Order02 0.138770084383308 Cut2 2016-12-08T11:18:21 2016-12-09T15:42:21 Order25 0.861229915616692 Shape1 2016-12-08T11:18:31 2016-12-09T08:06:31 Order08 0.138770084383308 Cut1 2016-12-08T11:24:31 2016-12-09T15:48:31 Order27 0.861229915616692 Shape2 2016-12-08T11:24:36 2016-12-09T08:12:36 Order25 0.861229915616692 Finish1 2016-12-09T08:06:42 2016-12-09T13:30:42 Order27 0.861229915616692 Finish2 2016-12-09T08:12:43 2016-12-09T13:36:43 Order09 0.861229915616692 Cut2 2016-12-09T15:42:23 2016-12-12T11:06:23 Order02 0.138770084383308 Weld1 2016-12-09T15:42:31 2016-12-12T15:06:31 Order02 0.138770084383308 Resource1 2016-12-09T15:42:31 2016-12-12T15:06:31 Order12 0.861229915616692 Cut1 2016-12-09T15:48:34 2016-12-12T11:12:34 Order08 0.138770084383308 Weld2 2016-12-09T15:48:41 2016-12-12T15:12:41 Order08 0.138770084383308 Resource2 2016-12-09T15:48:41 2016-12-12T15:12:41 Order14 0.861229915616692 Cut2 2016-12-12T11:06:26 2016-12-12T16:30:26 Order18 0.138770084383308 Cut1 2016-12-12T11:12:36 2016-12-12T16:36:36 Order09 0.861229915616692 Weld1 2016-12-12T15:06:35 2016-12-13T14:30:35 Order09 0.861229915616692 Resource1 2016-12-12T15:06:35 2016-12-13T14:30:35 Order02 0.138770084383308 Shape1 2016-12-12T15:06:45 2016-12-13T10:54:45 Order12 0.861229915616692 Weld2 2016-12-12T15:12:43 2016-12-13T14:36:43 Order12 0.861229915616692 Resource2 2016-12-12T15:12:43 2016-12-13T14:36:43 Order08 0.138770084383308 Shape2 2016-12-12T15:12:53 2016-12-13T11:00:53 Order19 0.138770084383308 Cut2 2016-12-12T16:30:28 2016-12-13T11:54:28 Order22 0.861229915616692 Cut1 2016-12-12T16:36:39 2016-12-13T13:00:39 Order02 0.138770084383308 Finish1 2016-12-13T10:54:56 2016-12-13T16:18:56 Order08 0.138770084383308 Finish2 2016-12-13T11:01:00 2016-12-13T16:25:00 Order24 0.644491966246677 Cut2 2016-12-13T11:54:30 2016-12-14T08:18:30 Order14 0.861229915616692 Weld1 2016-12-13T14:30:39 2016-12-14T13:54:39 Order14 0.861229915616692 Resource1 2016-12-13T14:30:39 2016-12-14T13:54:39 Order09 0.861229915616692 Shape1 2016-12-13T14:30:49 2016-12-14T10:18:49 Order18 0.138770084383308 Weld2 2016-12-13T14:36:45 2016-12-14T14:00:45 Order18 0.138770084383308 Resource2 2016-12-13T14:36:45 2016-12-14T14:00:45 Order12 0.861229915616692 Shape2 2016-12-13T14:36:55 2016-12-14T10:24:55 Order09 0.861229915616692 Finish1 2016-12-14T10:19:00 2016-12-14T15:43:00 Order12 0.861229915616692 Finish2 2016-12-14T10:25:02 2016-12-14T15:49:02 Order19 0.138770084383308 Weld1 2016-12-14T13:54:43 2016-12-15T13:18:43 Order19 0.138770084383308 Resource1 2016-12-14T13:54:43 2016-12-15T13:18:43 Order14 0.861229915616692 Shape1 2016-12-14T13:54:53 2016-12-15T09:42:53 Order22 0.861229915616692 Weld2 2016-12-14T14:00:47 2016-12-15T13:24:47 Order22 0.861229915616692 Resource2 2016-12-14T14:00:47 2016-12-15T13:24:47 Order18 0.138770084383308 Shape2 2016-12-14T14:00:57 2016-12-15T09:48:57 Order14 0.861229915616692 Finish1 2016-12-15T09:43:04 2016-12-15T15:07:04 Order18 0.138770084383308 Finish2 2016-12-15T09:49:04 2016-12-15T15:13:04 Order24 0.644491966246677 Weld1 2016-12-15T13:18:47 2016-12-16T11:42:47 Order24 0.644491966246677 Resource1 2016-12-15T13:18:47 2016-12-16T11:42:47 Order19 0.138770084383308 Shape1 2016-12-15T13:18:57 2016-12-16T09:06:57 Order22 0.861229915616692 Shape2 2016-12-15T13:24:59 2016-12-16T09:12:59 Order19 0.138770084383308 Finish1 2016-12-16T09:07:08 2016-12-16T14:31:08 Order22 0.861229915616692 Finish2 2016-12-16T09:13:06 2016-12-16T14:37:06 Order24 0.644491966246677 Shape1 2016-12-16T11:43:01 2016-12-19T08:31:01 Order24 0.644491966246677 Finish1 2016-12-19T08:31:11 2016-12-19T13:55:11 RunSimioScheduleCode.zip RunSimioSchedule.zip RunSimioScheduleFiles.zip SetupRunSimioSchedule.docx
  4. HI....The executable is not finding a license. See page 2 of the Run Experiments from the API. It show you how to setup the right file into the executable folder so the executable can find a valid license. https://www.simio.com/forums/viewtopic.php?f=35&t=836&start=15
  5. gtwirth

    IRows.Create takes n*n time to create n rows

    Hi Adrian. We improved the BatchUpdate. In our next Simio Sprint Release (9.156), the import from the design-time add-ins will we similar to the data binders when using BatchUpdate. In my simple test (only 1 column of data), importing 1 million rows took less than 20 seconds. Simio 9.156 should be released next week or the following week. As for your request to call the data binder import from the design-time add-in, I have added this item to our product backlog. I am not sure when this will be completed, but others have requested this feature as well. Thanks
  6. gtwirth

    IRows.Create takes n*n time to create n rows

    Hi Adrian, I will talk to development. I see this issue as well. Why don't you want to use a data binder?. I was able to import 2 million rows in 60 seconds from a CSV file into a table using our CSV data binder. Thanks
  7. gtwirth

    IRows.Create takes n*n time to create n rows

    Hi Adrian, You are definitely hitting some threshold.... If you just import 27000 rows, it takes only 5 seconds. I will forward this onto our development department to take a look. I will let you know what they say. In the meantime, are you able to batch your imports is batches of 25000 rows? Just import 25000 rows at a time using the BatchUpdate. First import the first 25000, then the next 25000 using a for loop with the batch update in between. Thanks
  8. gtwirth

    IRows.Create takes n*n time to create n rows

    Hi Adrian, We have run into similar issues on projects. We use the BulkUpdate method to increase performance. With the BulkUpdate method, SImio does not validate the data until all the data is imported into the tables. Here is the code: context.ActiveModel.BulkUpdate(model => { // Your Import Code }); This should provide what you need.
  9. gtwirth


    To run Simio Experiments from other applications, sometimes it is easier to wrap the SImio DLLs with another DLL to simplify the interface. The attached zip files contains the code, DLL and test executable to shows how wrapping the Simio DLLs can be done. The example shows a simplified way to run a Simio Experiment using a few methods on a DLL. One method to load model, one to set scenario values and then one to run the experment. To give it a try, unzip the zip files. Then, navigate to ....\RunExperimentDLLTest\bin\Debug folder. Run the RunExperimentDLLTest.exe. Then, specify the path and model name. This test form assumes that the model name is "Model" and the experiment name is "Experiment1". If you wish, you can modify control values of the experiment in the 2nd text box. There are 2 ways to run the experiment.. Run Asych is used for longer experiment runs. The RunExperimentsDLL will throw an event when the experiment is completed. Run Sync is used for shorter experiment runs. The RunExperimentsDLL will wait until the experiment is completed. Updated 20171106: Added the setting of the extensions path prior to loading the project. This line will enable the User Extensions be copied to the same folder as the DLL and the model will find them...(e.g. TextFileReadWrite.dll to use the Read and Write steps). SimioProjectFactory.SetExtensionsPath(Directory.GetCurrentDirectory()); Updated 20171103: Updated Project To Use for 4.6.2 .NET Framework RunExperimentsDLL.zip
  10. gtwirth

    Reading and writing on state variables from a custom step

    The best step example on the forum is located at: http://www.simio.com/forums/viewtopic.php?f=12&t=1381 If you wish to create the step from scratch, create a new UserDefinedStepAndElement project using the Simio Visual Studio templates.
  11. When you download a DLL, Windows blocks the DLL. You need to manually unblock the DLL. If this does not work, make sure there are no old Simio DLL files into the file location. If there are older Simio DLLs, the DLL will not work. Don't place any of the Simio DLLs into the user extension folder. Simio will automatically find the right DLLs in the C:\Program Files (x86)\Simio folder.
  12. gtwirth

    Rename Objects Add-In

    Here is an add-in that will rename the objects in your model based on values in a table. The first time you run the add-in, it will create a table called "Object Name Change". The uses will add the existing object name(s) and the new object name(s). Once done, run the add-in again and the object names will be changed in the model. To install, download the "RenameObjectsDLL.zip". Extract the "RenameObject.dll". Right click DLL and select Properties and then Unblock. Then, copy DLL into "C:\Users\\Documents\SimioUserExtensions". You might need to add the SimioUserExtensions folder under MyDocuments (C:\Users\\Documents) if it does not already exist. The c# code is also provided in the RenameObjectsCode.zip RenameObjectsDLL.zip RenameObjectsCode.zip
  13. gtwirth

    Questions about the API

    The Export Import Model from Text File add-in shows how to get the start and end points of a link. http://www.simio.com/forums/viewtopic.php?f=36&t=1389 ILinkObject link = intellObj as ILinkObject; if (link != null) { // add size objectdata = objectdata + listSeparator[0].ToString() + link.Size.Length.ToString() + listSeparator[0].ToString() + link.Size.Width.ToString() + listSeparator[0].ToString() + intellObj.Size.Height.ToString(); // add type objectdata = objectdata + listSeparator[0].ToString() + "1" + listSeparator[0].ToString()[0].ToString() + link.Begin.ObjectName + listSeparator[0].ToString() + link.End.ObjectName; }} To get data from an external system during runtime, use a Read, Excel Read and DB Read step. If you need to write a custom step to get at the data, see the step examples provide in the Simio install (e.g. C:\Users\Public\Documents\Simio\Examples\UserExtensions\DbReadWrite). To build the facility using an add-in, see C:\Users\Public\Documents\Simio\Examples\UserExtensions\SourceServerSink. If running Simio 146, there is a new example provided with the install C:\Users\Public\Documents\Simio\Examples\UserExtensions\SimioScheduling
  14. gtwirth

    Entity states as event to C#

    I have updated the ScheduleAndFireEvents post to provide more details. I think it has what you need. -- Ability to fire an event from .net and have it received in the model. -- Ability to pass information into .net using a step and receive results from the same step. The model will wait until the results are return. See: http://www.simio.com/forums/viewtopic.php?f=12&t=1381&p=4170&hilit=ScheduleAndFireEvents#p4170
  15. gtwirth

    Schedule and Fire Events...Choose Route

    The main concepts being shown in this example are: 1) FireEventsFromStep.png....This shows how to use a custom step to fire events in c#. The events are attached to an element. Once fired, the events will be sent back to the Simio model during runtime. The step also returns the number of entities to create in the OutputState. 2) EventFireFromC#.png....This shows the event from C# being received in the model. The event is being received by the Source. The source will be triggered to create entities. The number of entities to create is provided by the OutputState. 3) UpdateStateFromC#Code.png....This shows a step being called during runtime. The c# code will load a form and enable the user to pick a route for the entity. Based on what is select, either 1 or 2 is returned into the ListIdx state. Then, logic in the model will route the entity based on the return value.