Sign In
February 26, 2025
by Alejandro Duarte Vendries
The structural analysis of a transmission tower is particularly challenging due to the presence of multiple towers along a transmission line. With these lines extending for hundreds of kilometers, engineers must consider a wide range of varying loads and geometric configurations. Each unique condition requires either creating a new model in STAAD.Pro or modifying an existing one. For example, imagine working with five different transmission tower geometries, each subject to its own distinct load conditions. The process of manually building and analyzing each model is not only complex but also a highly repetitive and time-consuming task.
The process of creating and analyzing a single transmission tower usually involves the following manual steps in STAAD.PRO:
Creating the geometry of the main components.
Assigning loads for each load case.
Creating the structural model in STAAD.Pro.
Running the analysis and post-processing the results.
Each of these requires manual and repetitive tasks. The most time-consuming one is the first step. Transmission towers have a lattice geometry (this means that you have to create hundreds, even thousands, of elements to generate the geometry), and doing this in STAAD.Pro is boring and time-consuming. The same applies to load assignment, load combinations, and analysis of the results. If you have to create multiple models and multiple load cases and combinations, you will spend weeks on these tasks – and that is what some engineers end up doing!
The good thing is that most boring and repetitive tasks can be automated using Python. You can create the whole structural model and run it in STAAD.Pro using OpenSTAAD. But, as good as this automation sounds, we need something that wraps all these components and allows us to input the settings of our model. To accomplish this, you can use more Python frameworks. but even better, use a low-code platform.
For example, I used VIKTOR to bring all these steps together into a single application with built-in tools for user inputs, visualization, processing and I can share it with my colleagues. Keep reading to see how this app simplifies the challenges in creating and analyzing transmission towers!
The first step of the workflow is creating the geometry. The main components of the transmission tower are the skirt, which is the bottom part of the tower; the top body, which is the middle section that connects the skirt with the arms; and the arms, which are the elements that support the cables and are basically the load points. There is also the crown, which has the shielding of the transmission line.
Our app allows us to input the main parameters for each component, and it automatically generates the geometry. A nice feature to highlight is the creation of arms—with just a click, you can generate multiple pairs, and they will be evenly distributed along the height of the top body. Finally, you can visualize the 3D model of the tower in a GeometryView, which always helps to verify that we are building the correct geometry.
After generating the geometry, our app take us to the next section: the load definition steps. In here, we can assign point loads for the relevant load cases. For this application we considered the following:
Cable dead loads,
Cable tension loads under no wind,
Cable tension loads under wind.
We use a DynamicArray to create each load by setting up the load direction and magnitude. Also, the DynamicArray has a GeometrySelection field that allows you to select the nodes where you want to assign the loads. Finally, you can assign a color to each load and toggle a BooleanField to show or hide it in the 3D view. This way, you can refresh the view and see the tower model with the point loads displayed with the assigned colors.
The application sends this information to your own machine or server where the STAAD.Pro model is created using OpenSTAAD. The connection between the app and the worker is generated by a VIKTOR Worker, which is an executable that serves as a bridge between the app and your software. The worker executes the code that generates the model, assigns the cross sections, assigns support to the bottom nodes, and assigns the loads.
After STAAD.Pro completes the analysis, the VIKTOR Worker sends the results back to our web application. When the app receives the results, the user can select a load combination to visualize the axial load (tension/compression) distribution in the structural members. The app includes a GeometryView, where the 3D model is color-coded with a legend indicating the maximum tension and compression values, while on the right-hand side, users can check the exact axial load values for each tower element. This automates the post-processing of results, making them easier to understand and enhancing the built-in visualization features of STAAD.Pro.
Additionally, the load combinations are created directly in STAAD.Pro using OpenSTAAD. For this app, we follow the AS/NZS 7000:2016 guidelines to define the load combinations, considering the load cases we defined in the app along with the structure's self-weight. The code also generates wind load variations for both positive and negative directions. Manually creating these combinations is tedious and time-consuming, but with Python, we can automate the entire process.
The best thing about this app is that it is open source! You can find the code on GitHub and customize it to fit your needs. You can modify the geometry by implementing a different type of transmission tower, adjust the shape of the arms, or change the load combinations. Editing it is simple, like building with LEGO blocks.
In this blog, we went through the main steps of automating the most time-consuming parts of modeling and analyzing a transmission tower in STAAD.Pro. We combined all the components into a shareable web app that anyone on the internet can access. The next step for you is to check out our tutorial on integrating STAAD.Pro into your VIKTOR app and start building your own automations!
It has never been so easy to create web apps to automate complex engineering. Create a free VIKTOR account and start building your own web applications today!