In software development, versioning and collaborative working is usually based on a framework called ‘Git’. Files are downloaded locally, modified before being ‘staged’ and then ‘committed’ back to the server they originated from.
The system allows for branching of different versions with different code bases and is completely auditable – with the ability to revert changes within a branch. ‘Commits’ are required to have descriptive names in order to prevent the problems often encountered when a strict naming convention is not enforced, ie a folder full of ‘file_update 1’ file_update 2, ‘file_new version(2)’, etc.
While there are projects currently attempting to implement such a system for structural models, drawings, etc. they are not yet mature enough for everyday use.
Whilst these systems are being developed, engineers should try to maintain a sensible structure for versioning, facilitated by naming structures as described previously to permit easy differentiation between versions.
Common version number suffixes include P (Preliminary), T (Tender), C (Construction), and are incremented numerically. P1 being the first preliminary issue of a document, P2 being the second, P3 the third and so on. Some may choose to start at P0.
Version number and suffixes should not be easily confused, and generally should be explained via some consistent documentation. For example, the use of the suffix P may mean ‘Preliminary’ to some professions, ‘Production’ to others, and thus the suffix P1 may be unintentionally ambiguous when working collaboratively.
A changelog is a file (usually plain text) that details the changes in a particular version of a file or program. They are often hosted on websites for downloadable software or as a text file / message when installing an update to a program.
Changelogs include details of the latest software alteration, appended to the list of previous amendments allowing alterations to be tracked through versions of a model, effectively acting as a revision table for the file.
Structural models may be changed significantly between revisions, and it is good practice to note what these changes are, why they have occurred and who has made them.
Even if a single person is working on a particular model, changes can often be forgotten, resulting in potentially inaccurate results. This is especially true for cases where a single person has worked on a model for a significant amount of time.
It may not be practical to note down every single change between versions in exacting detail. If 50 nodes have been moved by a fraction of a distance, there is seldom significant change in the model or the outputs.
However, if a loading condition has changed, a load combination, members or releases removed or added, etc., these should be noted in a changelog to allow easy interrogation of results or comparison between different options within a structural scheme.
The scheme for a changelog should be consistent, an example of such a changelog is given below:
- 2020-02-29 Major update to geometry following issue of architectural set of drawings (dated 20200226). Many changes. Refer to markups designated (20200229_JobNo_Markups-for-structural-model) for details of geometry alterations and member removals / required additions.
- 2020-03-01 Minor changes to model loads to include increased snow load from extended canopy. Analysis results recalculated, no significant change in forces/moments.
- 2020-03-01 Incorporated changes from latest set of architectural drawings (set received 20200229). Geometry fixes; gridlines L and G adjusted to suit new drawings and nodes adjusted to suit. Cantilever on grid F, 1-3, lengthened from 1000 to 1500 and redesigned.
It is clear from each of these dates what part of the model has changed. In the case where there are large numbers of changes to the model, there is reference to a set of scanned in markups that is included with the model file.