Sign In
May 20, 2025
by Alejandro Duarte Vendries
Every structural engineer who uses ETABS regularly deals with post-processing hundreds of results. When the model is large, I often use multiple custom scripts to better visualize the results, helping me understand support reactions, internal forces, and displacements. But this leads to the problem of managing separate tools, which is inefficient. Each automation requires inputting the same file multiple times, and switching between scripts breaks the workflow and slows down productivity.
In the past, I tried grouping all these automations into a single application. However, multiple user interfaces in one app became overwhelming, especially for colleagues. They had to learn each tool separately, which led to back-and-forth communication and a steep learning curve.
Let's illustrate this with a real-case example of different post-processing tasks and automations typically seen in structural engineering projects:
1. Load and process the ETABS results
2. Review section properties, materials, and load cases
3. Check element internal loads
4. Clearly display support reactions
5. Use support reactions to design foundations
6. Review displacements and deflections
Each of these tasks is often automated separately, making their combined use complex, inefficient, and error-prone, which leads to low user adoption.
The solution I found most effective to overcome this is integrating AI with a low-code platform like VIKTOR.AI. Using Python, I'm able to create web applications easily, where engineers can easily talk with their ETABS models. The AI works like a support engineer, automatically selecting the right automation based on user input, executing tasks, and clearly presenting results.
Keep reading to see how adding AI to a web application turns post-processing into a fun and easy task that improves your workflow and boosts productivity.
Before integrating AI into our app, it is important to emphasise the necessity of keeping the human in the loop. Although these AI models are powerful, they are by no means a replacement for engineering knowledge. Taking this into consideration, the proper way to integrate AI into engineering workflows is to adopt a controlled agent-tool integration approach as follows:
Define the Scope: A structural engineer outlines the scope of the automation.
Tool Creation and Review: Each tool is created, defined, and thoroughly reviewed to ensure engineering correctness.
Tool Integration: When a structural engineer validates the output of the tools, it is then integrated into the agent.
This approach is much like having a graduate engineer; after you teach them a set of tools, they stay within that defined scope. With this framework in place, let's now explore how our agent enables us to talk to our structural model safely.
The first step is to upload your ETABS model as an Excel file. Traditionally, web apps include a section with step-by-step instructions that users must follow to upload their data in the correct format. Instead, this app uses a chat interface powered by an LLM agent through the LLM Chat component to simplify that process.
Users can start by greeting the agent and asking how to export their .xlsx
file from ETABS. The LLM agent handles the entire conversation, guiding users clearly and interactively. It explains which sheets are required and what units to use.
Once the file is ready, users can upload it through a FileField. The backend automatically processes the data, and the LLM agent starts post-processing the file using its tools, allowing the user to chat directly with the structural model.
After the model is uploaded and processed, our agent receives context about the model and starts using its tools to post-process the results. For instance, it can automatically generate a 3D visualization so the user can confirm that the import process went smoothly.
We can now chat with the AI agent and ask about the model. For example, I often check the model parameters first to confirm that the results make sense. You can also request a bill of materials or ask about load combinations to explore the model in more detail.
Talking with the agent is just the beginning. As mentioned, the agent has a set of tools available to post-process the model. For instance, the user can ask the agent to plot internal loads by load cases and load type. Instead of navigating ETABS conventions like "P" or "V1", you can simply say:
"Plot the internal axial loads for load case 1.0DL + 1.0LL"
These tools are simple Python functions—the AI agent just inputs the proper values and returns the results clearly, much like creating a PlotlyResult in a standard Viktor app.
The same principle applies to support reactions. For complex buildings, it is often helpful to visualize reaction loads with a heatmap to quickly identify heavily loaded columns. By asking the agent, it will run the corresponding tool and display the results in the app.
You can also use these results to design foundation pads or other structural elements. For instance, you can tell the AI model to predesign foundation pads by specifying a soil bearing pressure, while the model reminds you to use the correct units. Additionally, the agent can create an envelope of results so you can design the foundation considering all relevant load combinations.
Finally, you can automate serviceability checks by asking the model (AI agent) to visualize beam deflections. With color-coded outputs, it is easy to identify elements with the greatest displacements. You can expand the app's capabilities by adding features like custom filters or automated reporting.
Ready to integrate AI into your workflows? This app is open source on GitHub, so you can adjust it to fit your needs. You can modify existing tools or develop new ones for the designs you work on.
Making changes is simple. The agent tools are added or updated just like in any other VIKTOR app. The only thing you need is an OpenAI API key, which you can get from OpenAI. With a few small code edits, you can also connect the app to models from Anthropic or Deepseek, giving you more options to work with. You can check the ReadMe for more details.
In this blog, we covered the essential steps to automate ETABS post-processing by talking directly with your structural model through AI. As shown, there's no magic behind the AI integration, just solid engineering knowledge combined with Python and LLms!
Next, you can start developing your own tools for your LLm agents. If you're new to processing ETABS data, check the tutorial to learn how to post-process results from ETABS files effectively.
Developing AI-powered web apps for structural engineering has never been simpler. Join the growing community of engineers automating their tasks—create your own VIKTOR account now and enhance your engineering projects!
Subscribe to our newsletter and get the latest industry insights