Computational Load Takedown using Grasshopper
Introduction
On a recent project with our Mumbai team, I was looking into doing some things differently. On recent projects, I had an idea for a tool that could help structural engineers do their load takedowns in a better way. We hacked together a proof of concept in less than a week using Grasshopper and already I can see that this way of working represents the future.
What is a Load Take Down?
A load take down is a task that all structural engineers must do as a fundamental part of their jobs. A structural engineer’s primary responsibility is to account for how the loads applied to their structure flow to the foundations. To do this on a very basic level means carrying out what’s know as a “load take down” calculation. In simple terms, the engineer takes the load from its point of application down to the foundations (down because usually we are dealing with the point of support being at the ground and the load being applied is above the ground). This ‘taking’ is actually just a simple arithmetic calculation and amounts to nothing more than addition and multiplication. A simple load take down example is shown below:
In the example above, there are two primary data sources:
- Geometrical data
- regions in space that define a particular usage (kitchen, bedroom, bathroom, etc)
- structural framing (columns, beams, slabs) layout
- Numerical Data – what is the magnitude of each load for each usage
From the geometrical information, we can produce a region which any given structural element supports (takes down its load). This region then must be compared against the loading regions – what loading regions contribute to the region supported by the particular structural member? Effectively, at the end of this step, an engineer knows for a given structural element, what its total area of supported load is as well as for that area, the breakdown of usages on that particular area. So a column for instance could support loads from a region of 25 square meters, but 8 square meters of it is could be support a kitchen, 10 square meters supporting a bedroom, and 2 square meters supporting a bathroom. The key here is that all of these different types of usages have different loads applied to them. For instance, a kitchen’s loads will be higher than a bedroom’s loads because a kitchen usually has heavy equipment inside it where a bedroom usually does not. Therefore, after having analyzed the geometrical information, an engineer now needs to cross reference the geometrical data with numerical loading data, which is usually expressed as load/area. Then the calculus becomes very simple: Supported Area * Load/Area = Load Supported. The example above would be a weighted average of all the different usage cases:
Total Load Supported = (8sqm) x (Kitchen Load) + (10sqm) x (Bedroom Load) + (2sqm) x (Bathroom Load) = 8×5+10×2+2×3 = 66kN
An engineer needs to carry this calculation out for every column and every floor, summing the results at the end to arrive at a cumulative load for a given column at the foundation.
Load Take Down Status Quo
The currently process for carrying out load take downs for such a project would be drawing lines that represent the tributary region for each column on each floor, measuring the area enclosed by each of those lines in a CAD software such as AutoCAD. These numerical area values are then manually copied an excel sheet which would calculate the total load for the column based on the cumulative load. This process would be used for initial scheming of column sizes and also for column shortening calculations. Whist this system has worked this way for years, it is an inherently rule-based approach and completely reliant on an engineer manually curating various forms of data (geometrical and numerical), thus creating a disconnect between the inputs of the process to the output with many chances for human error in the middle.
This is a perfect opportunity for the use of computational techniques to help engineers do their jobs better.
Computational Load Take Down
My original idea for the tool was to automate the drawing of the areas to be taken down by each structural element using a voronoi generator in Grasshopper:
Benefits to this approach over conventional approaches will be that if column layouts change and/or slab edges change that the loading tributary area for each column which would typically need redrawn would be automatically regenerated given the new architectural layout. However in addition to this, I envisioned the the process being much more visual than using spreadsheets, with each level being shown in 3D space with its subdivided area for load take down. Therefore, in theory, this method not only could be orders of magnitude faster than conventional methods, but also, produce more reliable results because it kept the engineer in control of the numbers.
Potential technical issues are that the voronoi diagram will only work for a load take down application if the slab is a flat slab. If load paths are complicated by beams that stiffen certain areas more than others, this will make the voronoi diagram invalid for load take down. Also, the design team must take into account elastic shear effects for this method to be valid which will require significant engineering judgement to arrive at the proper factors for internal/external columns for specific situations.
Whilst for more complex structures a LTD will not be sufficient to understand the final stresses in each member, having a first-principle estimation of the stress in any one given element is always beneficial. This method opens the door to the possibility that all elements on the loadpath can have embedded within them the axial force that comes from a first principle calculation and also the axial force coming from a FEA analysis. Given all this data will be digital, it will be quite easy for an engineer to flag up where first principles do not line up with FEA, and subsequently, justify why there is a disconnect or troubleshoot any faulty modelling.
Conclusion
In the end, the tool came out exactly as it started on paper – an awesome visual tool which helped us do our jobs better. Whilst its just a quick hack for now, I can already see the power of doing things this way and have so many ideas to go forward with. However, for now, this is by far one of the most kick ass scripts i’ve ever made and I hope to develop it further on the next job!