Chains were a new feature introduced in V8 of 12d Model and each subsequent version has continued to add more functionality to chains. In this post, I will give a brief introduction to chains- what they do, how to use them, etc- and then show you how to create your first chain.
What are chains?
In its simplest form, a chain is a way of recording and running a set of steps as if they were one process. To quote from the 12d Model Help file:
a Chain is a list of items that are run in the order that they appear in the list.
Prior to chains, many features in 12d Model were functions. The various settings of each function, such as the interval between contours or cross sections, were saved as a function and that function could be easily re-run from the Recalc menu. However, not everything was a function- each panel had to be specifically written to support functions. To assist with this, most panels in 12d Model (even those that support functions) can be saved to a screen layout format, often abbreviate to SLF. The SLF allowed the data entered into a panel to be saved to a file (.slf or .slx) and then loaded at any time from within 12d Model. In this way, any panel that wasn’t a function could be easily saved and re-run, although not as easily as functions.
Chains are a natural extension of the idea of making common and repetitive processes within 12d Model easier to run. Just 1 second of time saved can add up to a lot of time (and money!) saved over the course of a typical project.
What can chains do?
Chains support many different steps and most (though not all) panels inside 12d Model can be captured and used in a chain. Each version of 12d Model also adds more functionality to chains, so I will just list some of the major features supported by chains:
- Recalculate a function
- Run other chains
- Resolve super alignment strings
- Plot via the Plot Parameter File (PPF)
- Run most 12d Model panels
- Run most screen layout files (SLF)
- Run external commands (e.g. batch file, external .exes)
- Manage views – create, delete, fit, add/remove models
- Manage elements – delete strings, models and tins, clean models, create models
- Manage files – delete and compare files
In addition to these basic features, chains also support more advanced functionality such as:
- Flow control using if/else conditionals, labels and gotos
- Parameters – values can be parameterised and changed at run-time without re-writing chains
I will not cover all of the functionality of chains in this introductory post, but will have a follow-up post explaining some more advanced functionality, including parameters.