Automate Truss Structure Optimization in ETABS

Alejandro Duarte Vendries

by Alejandro Duarte Vendries

As structural engineers, we strive to provide cost-effective solutions for our clients. This often involves working on multiple ETABS models and handling complex geometries like truss structures. While ETABS is a powerful tool, we saw an opportunity to extend its capabilities and streamline our workflow. This blog will showcase a shareable web application that optimizes and visualizes results across multiple models, enhancing efficiency and collaboration. By integrating with ETABS, we've created a more robust and versatile workflow that benefits both the engineers and clients alike.

Structural CTA full width block (1).svg

Common limitations faced in ETABS

ETABS is a trusted tool in structural engineering, offering powerful analysis and robust design capabilities. With a proven track record for handling complex projects, ETABS provides engineers with the confidence and efficiency they need to deliver high-quality results.

However, ETABS has its limitations too, which you've probably experienced as well. For example, creating geometry for structures like trusses with repetitive patterns and hundreds of elements can be a boring and time-consuming task. It can even become frustrating when you need to modify a geometry as a result of a client’s request or a last-minute change.

And what about optimizing the model? Finding the best solution isn't easy with multiple parameters and constraints. Even if you create multiple models and run them manually, the effort needed to process the outputs of 20 or 30 ETABS models quickly becomes overwhelming.

So how can we extend ETABS' capabilities and turn a workflow that takes days into one that’s done in minutes? The answer is: through automation!

Improving ETABS workflows with automation

In this blog, we will show how you can automate and optimize ETABS workflows in VIKTOR, a platform to build and share web apps with Python. We want to create a web app that easily integrates with ETABS and hosts it in the cloud so it can be shared with colleagues. VIKTOR lets us do both!

The application we're building will be used to tackle a common structural engineering workflow: the automation and optimization of trusses in ETABS.

Features of the app will include:

  1. Intuitive inputs and pre-visualization with a 3D model of the structure.

  2. Connection with the ETABS API to generate the models, providing key results like displacements and CO2 emissions.

  3. Flexible optimization settings that allow users to run multiple models and post-process the results with insightful visualizations. Here's a sneak peek of what the result will look like!

Now, let's dive into specifics.

1. Simplifying complex Truss Geometry design

Generating truss geometry is challenging, especially when modifying hundreds of elements. When adding new members, you have to recalculate and reassign all the loads, making it a tedious and time-consuming process.

Using some out-of-the-box components from the VIKTOR Software Development Kit (SDK), you can create a user interface that connects to the 3D model. Now, you can add members, recalculate, and reassign loads effortlessly.

2. Integrating your app with ETABS

Now that we have automated the geometry, we need to create it in the ETABS environment as well.

To get this working, your app will use the VIKTOR worker to connect with ETABS. The VIKTOR worker lets you use the ETABS API in Python, enabling you to automatically create the geometry, cross-section, and material assignments, as well as generate loads. No need to open ETABS - the app takes care of it for you!

You can see it in action in this video:

The 3D model and table at the end of the video show the highest deformation, number of elements, and CO2 emissions. In this case we aim to minimize the CO2 emissions without exceeding the maximum allowed deformation.

The results you're seeing are created using a GeometryAndDataView. This will help your users define the optimization settings, so let’s continue with that in the next section.

Structural CTA full width block (1).svg

3. Optimizing your ETABS model

Unfortunately, ETABS doesn’t have a built-in feature to run several models one after another and save the results automatically. This means there is no easy way to optimize models or see the results from the optimization process in ETABS itself. However, with VIKTOR, you can build a work-around!

For this, you will use the ETABS API to create a loop. In each step of the loop, a new model is analyzed in ETABS, and the results are saved. The VIKTOR worker runs this process and sends the results back to the web app.

Watch the video below to see how it works!

As you can see in the last part of the video, there's a table showing the maximum displacement and CO2 emissions for each of the analyzed models. Additionally, there's a graph that compares truss depth to maximum displacement. The results are organized into curves based on the number of joists, making it easy to see how different designs perform according to your criteria.

Structural CTA full width block (1).svg

Add This App to Your ETABS Toolbox!

Now you might be thinking: How can I implement this app in my company or add it to my toolbox?

Luckily, the code for this app is open-source, and you can find it in this GitHub repository. You can also use it as a template to create more web apps like this!

There are plenty of resources available for you to modify the app to suit your needs. You can adjust the input blocks, change the visualization, or explore how to use the VIKTOR Worker by following this tutorial.

Conclusion

With this app, you can enhance your ETABS workflows to make truss structure optimization easy and achievable in minutes, instead of days. With VIKTOR and Python, you can create and analyze multiple design scenarios to come up with the best results fast! Try it out to see how these tools can simplify your workflow and help you design better models.

illustration of start now

Start building apps for free

Start now
Share

Related Blog Posts

Automate frame section creation in SAP2000 using Python and Excel

Read more

Easily Export and Visualize ETABS Model Results

Read more

How to calculate cross-section properties using Python

Read more