Structural optimization, genetic algorithms, generative modeling and parametric design are the new buzzwords of the structural design industry. They’ve quickly replaced such old fashioned concepts as building information modeling (BIM), 3D CAD, and electronic delivery. The last generation of digital tools has opened the doors to many new and potentially transformative ways of using data to design structures. To stay on the cutting edge of the industry requires learning more software and applying more programming knowledge.
Way back when I entered the workforce, in 2004, most drawings were being drafted in 2D CAD. At the time, my company wasn’t yet using paper space in AutoCAD to set up drawing sheets. 3D modeling was very cumbersome and seldom delivered to the client. On the analysis front, finite element programs were widely used, but their graphic user interfaces were still pretty difficult to use. My first employer primarily used a 2D analytical program, so we were required to set up multiple 2D models with corresponding boundary conditions in order to approximate a 3D structure. There was virtually no link between analytical models and the CAD files used to create construction documents (CDs).
Building information modeling promised to change the industry, and it has. Modeling in 3D is commonplace, both for analytical models and for CDs. Although BIM hasn’t quite lived up to the hype about seamless transfer between the two model types, most of the software packages can at least transfer a DXF type file with centerlines back and forth. We still not reliably able to transfer all the load and modeling data between models, so iterative chances still require a lot of work in both models.
Lately, many of our architectural clients have begun using a 3D modeling program called Rhino. I first used the software in college to design my ASCE concrete canoe. It has long been used by industrial designers because of its ability to draw complex non-linear shapes. This gives architects a lot of freedom to model buildings that would have been unheard of in the days of hand drafting. It also makes structural engineers jobs a lot more difficult.
Modeling such complex shapes typically requires finite element analysis (FEA) of shell elements. We’ve had to learn how to use Rhino to manipulate architectural models for import into our analysis models. This has required an education in the differences between solids, surfaces, and polylines and a trial-and-error process of figuring out what the analysis program can handle. Often we’ve found that the shells are too complex for the analysis programs to automatically mesh. Subdividing the structure into many small elements is a basic principle of FEA. Most of the time, the built-in Rhino tools could do the job.
All this manipulation is incredibly time consuming, and every time you go back into the model to make a small geometric change there’s a serious risk of creating some type of discontinuity that will mess up the analysis. Then some architects introduced us to a Rhino plug-in called Grasshopper. Grasshopper is like a graphical programming language for manipulating the drawing tools in Rhino. Since Grasshopper was developed explicitly for Rhino, it integrated Rhinos built-in tools with the power to automate model generation. Savvy Grasshopper programmers can use the tool to automatically construct near-complete structural building models by “turning” a few input dials, like number of stories, bay spacing, story height. You can even program in rudimentary calculation so member sizes update accordingly with increasing spans.
Initially, I used Grasshopper for the basic purpose of rationally meshing complex surfaces. On a particularly ambitious project planned as part of a city-in-the-sea in Dubai, the architects on the team helped us develop a Grasshopper routine that would automatically generate an external diagrid structure around the swooping surfaces of a 50-story hotel building. It would have taken us weeks to draw in the structure manually; we only had days before a structural concept needed to be presented. I was able to take the diagrid generated by the architects and import it into my analysis program, SAP 2000, and estimate the member sizes. Later we exported the data back out to Revit Structure, input the designed sizes in the 3D model, added some floor trusses, and delivered a rendered isometric view of the structure for inclusion on the architect’s presentation board
I have since used Grasshopper to auto-generate a complex space frame structure. We had been working with architects on a plan to put a new glass-clad ballroom on top of an existing 8-story podium. However, because of the space usage below, we were extremely constrained in the location of new columns to support the roof. As the deadline for a concept design approached, we struggled to find a viable solution. The idea of a space frame came to me, but I was nervous to present such a solution without doing my homework. I quickly generated the geometry in Grasshopper and exported it my analysis program, RISA 3D. The next day I had a solution ready to present to my boss and the client.
The future of generative modeling is very exciting. Imagine writing a custom algorithm for a project that allows the architect to see, in real time, how their decisions impact structural efficiency. Engineers with my company have created such a model based on data about the embodied carbon in common building materials. Their program will show the optimal efficiency for a generic building, then the design team to change the parameters to see how revisions to column placement, restrictions on floor depth, or increasing the number of stories might impact the sustainability of the building.
Rhino is also testing its own BIM functionality. This would allow additional member information, like material thickness, to be tagged to surfaces and lines. I’ve seen a demo where this functionality is combined with Grasshopper and a FEA program to perform a real time structural optimization. You could literally have the program cycle through forms and member properties to find the optimal design. I can imagine a future where structural engineers spend most of their time writing front-end algorithms and checking output, while the iterative design process is outsourced to the computer.
This is a scary though to some, but perhaps no worse than existing doubts about the current reliance on canned computer analysis programs. Anyway, there’s no doubt that computers will never have the creative ability to solve problems like humans, right? Well, some engineers are experimenting with genetic algorithms that attempt to implement such creative thought. In some cases an evolutionary process is applied where seemingly random outcomes are introduced, compete, and grow until a superior solution is found.
Seeing how far the profession has come in just my first eight years in the business, none of these far-fetched ideas seem beyond the realm of possibility. It’s slightly discerning to think of all the new programs and skills I’ll have to learn in order to stay on top. Consider also the new vocabulary developing for sustainable design plus all the traditional stuff a structural engineer needs to know. Lifelong learning, you bet.