OpenStaad for Python
The open-source, unofficial Python library for STAAD.Pro automation. Fully documented on the web and built for vibe coding with Claude, ChatGPT, and Gemini.
A Python library your AI assistant already understands
Connect to several STAAD.Pro models open at the same time — each gets its own ops.connect() session. No COM boilerplate, no dispatch calls: call every function straight off that single, discoverable session.
- ✓A predictable, discoverable API that Claude, ChatGPT, and Gemini autocomplete accurately
- ✓Returns native Python types (lists, ints, floats) that models reason about cleanly
- ✓Every function documented online for assistants to fetch before they write code
- ✓Runs in scripts, Jupyter notebooks, and Streamlit on any Python 3.10+ setup
from openstaad import ops
s = ops.connect()
print(s.GetSTAADFile())
print(s.GetNodeCount())
print(s.GetBeamList())
Open source vs. official libraries
Bentley Systems now ships its own Python library for STAAD.Pro, and it closely resembles an early version of our open-source library. That's fair, we take it as validation. Since then, this library and its documentation have kept evolving to stay ahead of how AI writes engineering code, and we have plenty more improvements planned: lower token consumption and a smoother vibe-coding experience with OpenStaad.
- ✓Leaner calls. Fewer tokens per operation than a raw 1:1 API wrap.
- ✓Custom helpers. Purpose-built functions, not just a mirror of the COM API.
- ✓AI-first docs. Documentation written for assistants to read and act on.
News
Docs · Sep 2026 · Read the guide →
v0.0.15 · Aug 2026 · See both functions →
Docs · Jul 2026 · Browse the docs →
Jun 2026
v0.0.14 · Apr 2026 · Read the migration guide →
Milestone · Feb 2026
Domains
Browse all →The whole documentation is restructured into 35 structural domains. The split is deliberate — it follows how a structure is built, regroups the OpenSTAAD API classes around the element each function touches, and, crucially, matches how an AI can classify a request and reach for the right command.
Each domain is one focused page (Member, Member Loads, Member Results…), grouped into 6 families, and inside every domain each function is grouped by an action verb — 16 in all (Create, Add, Get, Set/Assign, Remove, …) — so people and models navigate by intent instead of memorizing names.
How domains and verbs work →- Functions
- 730
- Domains
- 35
- Families
- 6
- Action verbs
- 16
Ready to automate STAAD.Pro?
Start with a guide to get your first script running, or jump straight into the function reference.