Jump to content

Search the Community

Showing results for 'rename objects'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
    • Help Getting Started with Simio
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI General Discussions
    • SI Sprint Releases
    • SI Shared Items
    • SI Ideas and Suggestions
    • SI Known Issues and Workarounds
    • SI Performance Tips
    • SI Non-US Cultures
    • SI Student Competition
    • SI Educational
    • SI Libraries and Objects
    • SI Animation and Visualization
    • SI Distributions, Functions, and Expressions
    • SI Simio Tabs
    • SI Experimentation and Optimization
    • SI Functional Approaches
    • SI Industries / Domains
    • SI Types of Simulation
    • SI Emulation
    • SI API

Categories

  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


First Name


Last Name


Company/University Name


OCCUPATION


ICQ


WEBSITE


YAHOO


AOL


LOCATION


FACEBOOK


GOOGLEPLUS


SKYPE


TWITTER


YOUTUBE

Found 4 results

  1. 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
  2. @ResultLand I understand. I am not sure about the level of success you will have with these suggestions, but they may be worth a try. Nevertheless, in the time that you vet these processes, it may be just as easy to re-create your entity in the new model. (1) You could try deleting the new model ModelEntity from the Navigation pane, then rename your entity of interest to ModelEntity. (2) From your old model, save a version which just contains the entity of interest (delete all other objects in the Navigation pane), then load the file as a library in the new model after deleting the default ModelEntity from the new model. Finally, use the subclass feature to subclass your entity of interest and use newly created entity (from the subclass feature of your entity of interest) in the model. Subclassing the entity will allow you to manipulate the entity object definition, as you would expect. I hope this information helps. Thanks for using the forum. Regards, Alex
  3. There are multiple ways to deal with this issue, so I’ll go over my thought process and show you one way that I think will do what you need. You created several object definitions, which is key in Simio’s object oriented paradigm. However, the difficulty comes in interfacing objects with data and processes in the parent model where the objects are instantiated. One indicator that the full object-orientedness is not being used is the creation of multiple processes at the parent model level that do exactly the same thing, only they refer to different object instances in the model. This indicates that either the process is inherent to the object, and so should be included in the object definition or that the process can be generalized at the parent model level and use states/properties of the object instances. Your model has exactly this scenario with the “ChannelCommunication” processes—they are all exactly the same but just pointing at different Channel instances. Your idea of using the API to place the channels is reasonable, but you run into the issue of not being able to create instance-specific processes, as you’ve found. In your case, you make use of a global state array, so I kept the ChannelCommunication logic at the parent level. This allows us to refer to that state array directly. The approach is to reduce all those processes into one process that can take information about each channel instance to update the appropriate state in the array. I noticed you already have a property called “Position” defined on the Channel object, so we have that data available. Now we need a way to run that process from within the Channel object, so I created a process property on the Channel object called "ProcessProperty1". In the Channel’s process “AssignmentToProduct” I added an “Execute” step before “Fire2” with the value of “ProcessProperty1”. Now, in the parent model, we need to delete all but one of the ProcessXX in the ChannelCommunication group—rename that remaining process ChannelCommunicationUpdate for clarity. Next, we need to generalize the values in that assignment step and remove the triggering event name (we are using the execute step in the Channel definition, so we don’t need a specific event to trigger the process anymore). This is a little messy—there might be a better way to do this. My approach is to make use of the location.parent property available on each object. Through trial and error, I found that the object executing the ChannelCommunicationUpdate process is a Product entity in a combiner object in the Channel object. That means we can access the relevant properties on a Channel via the following expression: Product.Location.Parent.Combiner.Location.Parent.Channel Thus on the assignment step the fields become: Row: Math.If(MODE==0,Product.Location.Parent.Combiner.Location.Parent.Channel.Position,Product.Location.Parent.Combiner.Location.Parent.Channel.ProductCreated) Column: Product.Location.Parent.Combiner.Location.Parent.Channel.Position New Value: Math.If(MODE == 0, PlaceOfREF[Product.Location.Parent.Combiner.Location.Parent.Channel.Position, Product.Location.Parent.Combiner.Location.Parent.Channel.Position] + 1, PlaceOfREF[Product.Location.Parent.Combiner.Location.Parent.Channel.ProductCreated, Product.Location.Parent.Combiner.Location.Parent.Channel.Position] + 1) Now, the ProcessProperty1 on each channel instance needs to be set to that ChannelCommunicationUpdate process. For future “builds” of the model, you can either set ProcessProperty1’s default value to be ChannelCommuncationUpdate or set the property value when placing the object. I think that will give you the ability to create an arbitrary number of channel instances via the API and have the logic apply to each instance. Hope it helps -Adam
  4. Thanks, One feature that I would still like is a selective delete, or a rename. Is it currently possible to rename objects? It would be great if the functionality of this add was incorporated into the standard Simio package, allowing for a batch select.
×
×
  • Create New...