Algorithms and artificial intelligence will become common design methods in the future. When the market of AEC industry is getting more and more global, we must keep on researching and developing to maintain our position in the market. The best outcome is achieved by taking care of the effectiveness and quality.
In order to maintain the competitivity in the market, compared to the developing countries such as China and India, we have to start automatizing routine design tasks. The outcome is a more effective design process with competitive price. Design automation improves the quality, because it reduces the probability of a human error: the work done by a computer algorithm is uniform and error-free. The most important feature in our business is to take care of the good customer experience: high quality project management, holding the schedules, polite service, active communication and other interactions between people. These tasks can’t be automatized as far as the customer is represented by human beings, not robots.
Design algorithms require understanding of analytical geometry and math
An algorithm is a group of rules to perform a certain task. When a building or a part of it is designed with algorithm aided methods, the first task is to determine the basic geometry mathematically. The geometry is controlled with parameters such as building external dimensions. On the other hand, the initial data for the design algorithm can be for example a geometric shape (curve, surface etc.) provided by the architect. The understanding of analytical geometry and vector math are important skills for the writer of a geometry algorithm.
“An algorithm is a group of rules to perform a certain task.”
In principle, the algorithms used in structural engineering could be written in any platform (for example MS Excel). However, usually the most efficient are visual programming platforms such as Grasshopper, which doesn’t necessarily require programming language skills. In Grasshopper the user can mostly utilize the standard components, which can be found from the basic tool bars. Each component performs a certain task. The component takes the input on the left side and gives the output on the right side. The output can be coupled to the input of the next component. The example below presents an algorithm, where a line is generated of two points. The start point of the line is placed to the origo (A). The point in the origo is copied with a translation vector. The magnitude of the translation vector is controlled with number slider, which is called a free parameter (line length). Eventually the start point (A) and the end point (B) are plugged into the component (C), which creates a line between them.
Grasshopper is not particularly tailored for the needs of structural engineering, and Grasshopper alone is not necessarily enough for executing comprehensive structural design algorithms. However, Grasshopper is an excellent platform for building the master algorithm. By utilizing the application programming interfaces (API), other design softwares can be controlled from Grasshopper. For example, the APIs offered by Tekla Structures or Dlubal Rfem enable the execution of almost any of the software’s own functionalities from an external program. Alternatively, the strength calculations could be programmed directly to the Grasshopper components. However, in structural engineering it’s more effective to utilize the existing softwares and program links between design softwares and algorithm platform. The total amount of code to be maintained is then significantly smaller. The disadvantage of using the APIs is that you become depended on the API supplier. For example, if you find an error in the API (i.e. the programming interface doesn’t work as expected), you must wait until the API supplier repairs it. You should never get depended on an API supplier, if you are not convinced on the reliability of the API or if the API documentation is insufficient.
Manufacturing robotics and algorithm aided design enable an architectural revolution
In the late 1900’s the prefabrication process of the buildings set strict boundaries for the architecture. The labor costs raised significantly, causing that prefabricated highly standardized parts were the only economically reasonable option. When the manufacturing technology has evolved, the standard blocks have got some nice details such as graphic concrete and other surface treatments, but even today the manufacturing process still includes a lot of manual work. The turn point, where the level of robotization and artificial intelligence enable a full automatized manufacturing process, is coming soon. Fabrication robotics combined with the design process boosted by algorithms and artificial intelligence will enable a cost-effective execution diverse architectural shapes. A fabrication robot reads the digital input in milliseconds and is not interested in how many similar parts it has to produce with that input. Even tough every manufactured part would be different, there wouldn’t necessarily be a significant difference in the costs.
In the example on the left, a design algorithm written by a structural engineer has been linked to two curved/inclined surfaced determined by the architect. The structural design algorithm generates roof trusses between the surfaces. The algorithm first decides the middle lines of the trusses. The middle lines are projected to the surfaces forming the top and bottom chords. Manual modelling of these kinds of unique trusses would be laborious. If the surface shape would be changed, the manually modelled trusses would be deleted and the modelling work would have to be started from the beginning.
The AINS Group’s Team Computational Design is co-operating with Geometria Architecture Ltd. In the spring 2018 we started together a KIRA-digi project supported by the Finnish government. In this R&D project we are practicing a design process for an imaginary building, where both architect and structural engineer are using algorithm aided design methods. Our goal is a perfect linking between the architectural and structural algorithms. We are automatizing the path from the architectural shape to the detailed steel structure. Of course, the strength of the structure and joints have to be verified. We have programmed a link between Grasshopper and Dlubal RFEM (structural analysis software), which utilizes the API offered by Dlubal. Our algorithm calculates the steel structures in Dlubal RFEM and returns the designed profiles for each member to Grasshopper. Our Grasshopper-Rfem link also picks the internal forces of the joints, which are used as an input for the connection design algorithm.
Algorithm aided design enables the mathematical optimization of the structure with respect to the free parameters. The required input for the optimization algorithm are the free parameters to be varied and a fitness function. In the video example the external dimensions of the truss are fixed and the topology parameters (for controlling the layout of the diagonals and verticals) are plugged to a genetic algorithm, which optimizes the parameters with respect to the total mass. In the other example the optimized structure is an entire steel frame. The external dimensions of the hall are locked and the optimization algorithm varies the layout of columns, wall bracings and roof trusses.
Algorithm is unambiguous and does exactly what it has been told to
The difference between algorithms and artificial intelligence such as neural network is that artificial intelligence gives a solution based on the analyzed learning data. For example, artificial intelligence can be trained to perform detail modelling by analyzing similar type detailed BIM models. The learning data is valuable, because the outcome is totally depended on it. It can be challenging to normalize for example a geometric learning data into a readable form for the artificial intelligence. An algorithm is unambiguous and does exactly what it has been told to.
Detailed modelling is usually the most time consuming phase in the design process and therefore automatization can enable remarkable cost savings. Details are also the most challenging part for automation. Determining a connection unambiguously with an algorithm is difficult, but in many cases ready-made Tekla macros can be utilized and controlled via API.
In the image on the right is a typical joint from a power plant project, where beams and braces are connected to same column node from all directions. Parts of the members are connecting to its own gusset plate and some are connecting to the same plate with other members. The required space of a single bolt group affects the geometry of the other connections and the shape of the shared connection plates. In addition, some stiffening plates are needed to stabilize the connection area. When the design of this connection is automatized, a good manner of approach could be, that the most straightforward and structurally most critical design task such as bolt group sizes and plate thicknesses are chosen with an algorithm, and artificial intelligence finishes the work by giving final shape for the plates and by setting the stiffeners. Artificial intelligence and algorithms are not exclusive methods for each other and I believe, that in the future they will be used side by side.
The automatization of the building design or other industries is not something to be afraid of. Throughout history, technological evolution has reduced the need of man labor in the routine task creating a bunch of new possibilities and work at the same time. The work done by the human beings becomes more delightful, when we can put our effort into a creative engineering and solving large scale problems instead.
The article was written by Ilari Pirhonen, who worked as a designer at AINS Group. Other people behind the Team Computational Design of AINS Group are Matias Hirvikoski and Petteri Karjalainen.
The automatization of the building design or other industries is not something to be afraid of. The work done by the human beings becomes more delightful, when we can put our effort into a creative engineering and solving large scale problems.