RM

Project · Shanghai · 2004 → 2026

Shanghai Cruise Terminal

Prestressed cable facade, re-engineered 21 years on with a Python + Oasys GSA pipeline — Eurocode 3 sizing, form-finding, and GB 50011 seismic verification.

Twenty-one years ago, this facade fascinated me.

I was a junior engineer at RFR. The Shanghai Cruise Terminal — the most challenging structure I had ever calculated. I’ve rebuilt it with Rhino, GSA, Python and AI, and built tools to accelerate this kind of complex project.

Building × wave · displacements · stress — GSA result loops (Rhino → GSA → sizing loop → mode shapes)

PART ONE · THE EUROCODE 3 (EC3) & FormFinding

Back then, modeling and sizing were very tedious

Modeling, Size, Calculate, Resize. Recalculate. Check my old Eurocode 3 Spread Sheet. Again. And again. For days...

The solution at the time was MACROS, that made us save a lot of time, but MACROS still require a lot of hand-work and slow the process down.

I wonder… what about if I used… Python + AI?

PART ONE · THE EUROCODE 3 (EC3) & FormFinding

Critical load case, based on memory, 21 years later.

Section selection was done based in my nowadays memory after 21 years and taking into account that I did not participate in the Detail Design and Construction Design Phases.

FormFinding tool is not include in the Evaluation Version of Oasys GSA, but I thought with Python is easy.

PART ONE · THE EUROCODE 3 (EC3) & FormFinding

So I built it again — this time with Python+AI

AI has helped me to find the way, accelerating my GSA skills in combination with Python.

Python + AI is an amazing tandem that assist you in creating the model with the COM-API of GSA.

I have my configuration saved in a Markdown file that is connected with the Python apps that I have created.

With the terminal (CMD) I launch the file modifications and iterations better than the Visual (GUI) that has a lot of risks of crashing when the models become too complex.

PART ONE · THE EUROCODE 3 (EC3) & FormFinding

So I built it again — this time with Python+AI

So I have used my old Eurocode 3 Spread Sheet to verify every single step in Python.

PART ONE · THE EUROCODE 3 (EC3) & FormFinding

Same load case. FormFinding with Python + EC3 iteration

A fixed 50 % utilisation target converges in only 4 iterations for every section to settle within a ±10 % band.

My EC3 app is integrated with GSA: it runs the check, and if a section fails it sweeps the standard RHS catalogue with a convergence criterion in very few steps.

PART ONE · THE EUROCODE 3 (EC3) & FormFinding

Same load case. FormFinding with Python + EC3 iteration

Convergence is a reality. The real value of this app is cutting the tedious hand-work that slows the process down and introduces errors and frustration for the team.

No more remodeling, resizing, recalculating…

GSA crashes….

Again. And again.

For days.

I only Check my old Eurocode 3 Spread Sheet to verify the optimized solution. We require the Structural Engineer only in the important moment, we are always in the loop, but for the important thing.

Happy ending… for now

PART ONE · THE EUROCODE 3 (EC3) & FormFinding

Time / Tool of FormFinding with Python + EC3 iteration

Each GSA run takes around 50–60 min, while the automated EC3 check computes every section in 8 seconds — as you can try in the demo on the main page.

PART ONE · THE EUROCODE 3 (EC3) & FORMFINDING

Do you want to try it?

These are the default values for the first iteration of the Wave facade — enter the section, forces and buckling length of the project you are studying and check its EN 1993-1-1 clauses against my calculations.

RHS section

Critical element of your structure

Buckling length

RHS section detail — GSA

PART TWO · THE EARTHQUAKE

I passed to seismic verification Python+GSA.

GSA has a tool, but I want to see if I can do it with Python and as this leave the to the GSA tool the important tasks.

PART TWO · THE EARTHQUAKE

Python+GSA seismic verification.

PART TWO · THE EARTHQUAKE

Python+GSA seismic verification.

Cable check — EN 12385 catalogue

Each family (bow / norm / vertical) sized by its governing axial force from the 100/30/30 envelope → smallest standard cable. → Huge margin: Cables sit far below capacity (max U = 17 %). The one open item is a small transient slack (−4 kN) under the worst 100/30/30 combo — bounded and acceptable. Cross-checked GSA vs Python: 1.000.

If your team still does this by hand — let’s talk.

Ricardo Merino · structural engineering + automation

Eurocode · GB 50011 · EN 1993-1-11 · Python + GSA

Contact

Let’s talk.

If part of your team’s week still looks like this, send a message — or find me on LinkedIn and Xing.

← Home