by Alejandro Duarte Vendries
In recent years, Python has undeniably revolutionized how we do structural engineering. Engineers proficient in Python have a distinct advantage, as it unlocks a wide array of possibilities to automate structural engineering workflows and significantly enhance productivity.
You may already be aware that Python, combined with the SAP2000 / ETABS API, can be used to pre-process data, generate models, and extract and post-process results. However, did you know that you can take this a step further? In this blog, I will share 6 examples on how you can leverage VIKTOR, a platform to create web applications with Python, to create ETABS / SAP2000 applications that not only automate a larger portion of your workflow but also offer a user-friendly interface in which you can collaborate with colleagues. Let's dive in!
As a structural engineer working in infrastructure, buildings, oil and gas, mining, energy, or agriculture, you've likely encountered numerous structures with a high degree of standardization. Common examples include foundations, warehouses, tanks and silos, overpasses, retaining walls, box culverts, chimneys, and transmission towers.
Rather than creating a new ETABS/SAP2000 model from scratch for each project, a more efficient approach is to develop a parametric application using Python and VIKTOR. This application allows you to define all key parameters of your model, such as dimensions, material properties, sections, and loads, which then automatically generates the model for you.
One of the major advantages of having an application with a clean user interface is the ability to easily modify parameters and instantly visualize the changes in VIKTOR's 3D geometry viewer. This streamlined process enables you to swiftly run calculations and iterate on your design, significantly enhancing your workflow efficiency.
Improving your structural modeling workflow is quite valuable, but I think you would agree that it is only one of many steps involved in a large engineering project. Usually, the bottlenecks and more challenging parts of a project come from collaboration and data exchange between multidisciplinary teams across different engineering domains.
This is where you can take advantage of VIKTOR’s other integrations, beyond SAP2000 and ETABS, linking multiple analyses to another in one single application.
For example, you could create an app that integrates the mechanical and structural engineering domains. When designing the support for mechanical equipment, you might get the load from an analysis conducted in ANSYS and then pass those loads to SAP2000. All structures require a foundation, so you can also integrate geotechnical information by adding PLAXIS or SAFE to your VIKTOR app. After the analysis, you can export the design to Revit or Tekla and even generate a custom report. This way, you can have the inputs and outputs of all domains connected in one app, eliminating the need to go back and forth between multiple teams.
In the previous section I mentioned that you can integrate ETABS and SAP2000 apps with other software packages, Excel sheets, Python scripts, and more.
With that in place, you can take it a step further: run multiple – even hundreds – calculations across all packages to find the optimal design for all kinds of criteria, like minimizing cost, material weight, carbon footprint, and more.
VIKTOR offers built-in tools for this purpose, like the OptimizationButton. With a single click, you can run an optimization routine that tests different input combinations, run your model multiple times with various geometries and cross-sections, and stories and compare the results. Additionally, VIKTOR has multiple visualization options like graphs, tables, 3D models, maps, and more, enabling you to show the data from ETABS, SAP2000 and all the other software packages in a single place so you have a better overview and more insight into the effect of your design choices.
Data is an important part of any project, and you will have a ton of it when working on larger projects in which you design several structures or run optimizations. If there is one thing certain, it is that data – like geotechnical input, geometry, loads, and other requirements – constantly change throughout the course of a project. Therefore, managing this data correctly and making it accessible to all stakeholders is an essential part of turning any project into a success.
By creating an app for your project that integrates with ETABS, SAP2000, or any other third-party software, you leverage VIKTOR’s built-in database with version control. You create a single source of truth for all your project data, which all stakeholders can access by simply logging into the platform.
For example, in a VIKTOR app you can store different designs, so you can access them any time without losing the data. Moreover, VIKTOR automatically tracks design changes. In your ‘history’ you can see who made changes, what was changed and why it was changed, and you can reload previous design versions if needed.
Additionally, you can connect different VIKTOR apps using the API so you can, for example, push and pull data directly from and to your app that integrates with ETABS or SAP2000 to another app used by a geotechnical engineer.
For complex structures, it’s often necessary to extract ETABS or SAP2000 models and calculation results from the CSI environment to perform custom or advanced analyses. However, exporting large models into Excel can be cumbersome and time-consuming.
With VIKTOR and Python, you can manage large amounts of data in an organized manner, avoiding the hassle of managing hundreds of rows and multiple Excel sheets or text files. You can use the results, organize them, and pass them on to other VIKTOR apps for post-processing. In this way, you can focus on the engineering and the awesome part of the project by automating the boring and repetitive tasks.
Through VIKTOR, you can also access the entire Python ecosystem, so you can create custom visualizations for your clients and users, because let’s face it, no one likes a structural report with hundreds of tables. VIKTOR has a lot of features like PlotlyView and TableView, so you can manage your data with Pandas and display it in your web app using Matplotlib and Plotly. It is really a game changer. The best part is that you can have it all in just one shareable app!
Most likely, not everyone in your team knows Python – but everyone can use a web app! By creating user-friendly interfaces with VIKTOR, you make your expertise accessible to the whole team.
Using different building blocks like input fields, visualizations, and interactive components, you can build apps that empower your colleagues to perform complex tasks without needing to code. Visualizations such as interactive graphs, maps, and 3D models make the data more comprehensible and engaging. This way, you can scale your knowledge across the team, ensuring everyone benefits from these workflows.
With VIKTOR, you can create intuitive, user-friendly applications that make your expertise accessible to the entire team. Using building blocks you can create apps with features like input fields, interactive components, and visualizations, you empower your colleagues to perform complex tasks without needing to code. Interactive graphs, maps, and 3D models make the data clearer and more engaging, helping your team understand and utilize complex information. This way, your knowledge and workflows become scalable, benefiting everyone involved.
If you’ve made it this far, you’ve seen how integrating ETABS, SAP2000, and VIKTOR can transform your workflow across various scenarios. From creating models more quickly to enhancing collaboration and data management, the benefits are clear. You can start right away by following this [tutorial](Conclusion
If you’ve made it this far, you’ve seen how integrating ETABS, SAP2000, and VIKTOR can transform your workflow across various scenarios. From creating models more quickly to enhancing collaboration and data management, the benefits are clear. You can start right away by following this tutorial and extend it to your own use case.