A high level strategy for automated tunnel design

Previously I had argued that tool sets are now available that mean that now is the right time to look at automated tunnel design. In this post I will discuss a high lever strategy for automated tunnel design. For the sake of simplicity I will consider a simple shaft for the connection to a sewer but I believe that the same or similar principals could be applied to much more complex problems.

One of the core elements to the following process is the use of the programming language Python. Python is a fairly modern language that has been widely embraced by the technical community (scientists, mathematicians and engineers). As such it is built into many of the advanced programmes that we might be working with as well as having frameworks to do things like producing high quality graphs and other technical images.

  • the first element is a BIM tool to hold all of the data and to integrate it with other structures. In this case I have initially chosen REVIT for this. It may not be the ideal solution but it is an easy tool to use to integrate with other designs.
  • the next element is a set of design protocols for all elements of the works that need to be designed. This would include not only the structural design but also the design of elements such as space proofing. For space proofing of the simple shaft this might include rules about the length and size of ladders and requirements for the number of ladders. It might also include elements such as the minimum size of shafts. For the structural design this would include design methods for the shaft lining as well as base slabs and cover slabs.
  • to undertake the space proofing I am considering a bespoke tool. Any space proofing tool for automated design need to consider aspects such as constructability and standardisation of components. I do not believe that most current space proofing tools are capable of this. An application to undertake the layout and spaceproofing of structures would have to be built within Python. Macros in REVIT can be called to undertake run a bespoke tool such as this and to generate the structure within REVIT.

  • the structural design will also be undertaken using bespoke code in Python. Critically the intention is not to undertake detailed numerical analysis and optimisation of a structure but to undertake the design using and efficient but simple and robust method. This approach is key to ensuring that the design can easily be followed and changes made where necessary.

  • the final component is reporting. With any complex system the human to machine interface is well know to be a weak point. With any automated design approach you must expect that there will be times when the automated design will fail and it must be manually overridden. It is only with high quality human readable output that the designer will know when to override the system. This therefore is an essential part of the system and may also be the most expensive and difficult part of the system to build. Again Python can be leveraged in a few different ways to produce the report with technologies such as matplotlib and Mathjax.

In future posts I want to look at how to build some of these components both in a theoretical sense and in writing some example code. I also want to look at some of the higher level isssues with this approach such as some of the constraints our industry has to this sort of technology actually being adopted.