CSI API development
ETABS, SAP2000 & SAFE API development
Scripts, plugins and Excel tools that drive CSI software through its API, so model setup, repetitive edits and results extraction run the same way every time — without hours of manual clicking.
# attach to the running ETABS session
model = etabs.SapModel
model.File.OpenFile(path)
model.Analyze.RunAnalysis()
setup = model.Results.Setup
setup.DeselectAllCasesAndCombosForOutput()
setup.SetComboSelectedForOutput("DRIFT-ENV")
drifts = model.Results.StoryDrifts()
report.drift_table(drifts, limit=1/500)
| Story | Dir | Drift | Check |
|---|---|---|---|
| L24 | X | 1/640 | OK |
| L23 | X | 1/655 | OK |
| L24 | Y | 1/760 | OK |
What the API makes possible
Everything you do by hand, done by the model itself
The CSI API exposes most of what you do through the interface. That means repetitive work can be scripted once and reused on every project.
Build & edit models
Create grids, stories, materials, sections, frames, shells and load patterns from structured input, and batch-edit properties, labels and assignments.
Run analyses at scale
Set up load cases and combinations, run design iterations and parameter studies, and save each variant consistently.
Extract results
Pull story drifts, displacements, base reactions, modal results, pier and spandrel forces and design output into structured data.
Check & report
Apply your office checks and produce formatted Excel tables, plots and report sections that look the same on every project.
Typical tools
Examples of CSI automation
- Load pattern, load case and combination generator driven by your code-based spreadsheet
- Drift, displacement and torsional irregularity summaries across all load cases
- Pier and spandrel force extraction with wall design summaries
- Model comparison that lists what changed between two versions
- Batch updates of sections, materials or stiffness modifiers across many models
- A plugin that adds an office-specific command inside ETABS or SAP2000
How tools are built
Practical choices, documented
- Languages
- Python, C# (.NET) or Excel VBA, chosen to fit your team’s environment and who will maintain the tool.
- Connection
- Attach to a running ETABS or SAP2000 session for interactive work, or open and process models automatically for batch jobs.
- Delivery
- Standalone scripts, Excel workbooks, desktop applications, or plugins launched from the program’s Tools menu.
- Versions
- API behavior can change between releases. Every tool documents the software versions it was validated with.
- Validation
- Results are compared with values from the program’s own tables and with agreed hand checks before delivery.
FAQ
CSI API questions
Versions, licensing and building on the scripts you already have.
Which ETABS, SAP2000 and SAFE versions are supported?
Recent versions of these products expose the CSI API, but capabilities and behavior differ between releases. Tell me your exact version and I’ll confirm feasibility before quoting.
Can a tool run without anyone clicking through ETABS?
The CSI program must be installed and licensed on the machine, but batch tools can open, process and close models automatically without manual interaction.
What about CSiCOL?
What can be automated for CSiCOL depends on the version and the data it can import and export. Describe your process and I’ll assess the options honestly.
We already have VBA macros. Can you build on them?
Yes. Existing macros can be repaired, documented and extended, or migrated to Python or C# when that makes them easier to maintain.
Related services
Start a conversation
Which part of your workflow should run itself?
Describe it in a few sentences. You’ll get a feasibility reply and clarifying questions before any quote.