Jump to content

Collaborative modeling and source control.


dsturrock
 Share

Recommended Posts

Simio has a number of enabling features that are not widely known.


When you save a project file, most people use the .spfx extension which is a compressed binary file. But if you would like to take advantage of a version control software (VCS), you generally want the VCS to manage versioning and file compares and file compression, itself. Simio has a multi-file project format referred to with a .simproj extension, which is designed with exactly that purpose in mind. Ths format involves a single key simproj file and a related set of folders that contains the uncompressed version of all the included components. This allows VCS to recognize when a small change to your model is made that it only needs to save that small change and not the entire model. While this works with any VCS, internally at Simio we use Tortoise SVN (http://tortoisesvn.net/) which works quite well for us.


Simio also has some built-in features to help track and maintain model/library versions. If you right-click on an object (a model) and select "Properties" you will see a set of model properties for that object including Version. This version number is referenced when loading this object as part of a library to help evaluate if an object has been changed and if the change should be accepted (more on this below).


Some additional model properties including Description, Keywords, and Categories. These are available in your model, plus they are available externally. For example the Sample SimBit Solutions interface uses these properties to help you quickly find a SimBit of interest. Some of them are also used in the Model Documentation Report.


Speaking of which, the Model Documentation Report is designed to provide a quick way of examining all non-default parameters in your project. It can be useful to instructors evaluating assignments or as a way to record or share a snapshot of your model data.


If you click on your Project name in the navigation window, the click on Models and the Edit ribbon

you will see various options for subclassing, cloning, and copying library objects. These options, while subtle, give you greater control over how the lineage of an object wil be handled. You will also see options on this ribbon to protect your object from viewing and editing, and also to describe changes that have been made with the latest version.

  • Like 1
Link to comment
Share on other sites

When you save a project file, most people use the .spfx extension which is a compressed binary file. But if you would like to take advantage of a version control software (VCS), you generally want the VCS to manage versioning and file compares and file compression, itself. Simio has a multi-file project format referred to with a .simproj extension, which is designed with exactly that purpose in mind. Ths format involves a single key simproj file and a related set of folders that contains the uncompressed version of all the included components. This allows VCS to recognize when a small change to your model is made that it only needs to save that small change and not the entire model. While this works with any VCS, internally at Simio we use Tortoise SVN (http://tortoisesvn.net/) which works quite well for us.

 

 

This works with an important caveat: you cannot take advantage of any VCS merge functionality (or any other functionality that modifies the content of the source file). This is because each .simproj file (which is essentially an xml file plus resource files, I believe) has a hash associated with it. This hash is checked on load, and if the xml has been modified outside of Simio the file will not load. We had wanted to use Tortoise SVN to help manage development of models and custom objects; however this behavior limits what we can do as we cannot branch and merge projects. As an example, I was interested in developing two separate features of a custom object, so I branched the project twice to develop each feature independently. When I had the features working, I was unable to merge them together. Rather, I could, but the resulting file would not open in Simio. This may represent a small fraction of use-cases, but I wanted to share our experience before people get too excited about VCS functionality.


-Adam

Link to comment
Share on other sites

  • 6 years later...
×
×
  • Create New...