ETABSharp
A fluent C# wrapper for the ETABS structural analysis API, with an AI/MCP layer for natural language interaction with structural models.
Problem
The ETABS COM API is powerful, but direct usage is slow and error-prone.
Most calls rely on ref arrays, return integer status codes (ret != 0) instead of
exceptions, and expose stringly typed arguments with minimal guidance.
In practice, that means every script repeats the same COM-era boilerplate before you can do any real engineering work.
Approach
ETABSharp wraps the raw COM API with:
- Strong typing - outputs are typed records, not
refarrays - Fluent access - navigate ETABS operations without hand-assembling parameter arrays
- Better errors - meaningful exceptions instead of checking
ret != 0everywhere - Helper methods - common workflows reduced to concise calls
var displacements = etabs.Model.AnalysisResults.GetJointDispl("",eItemTypeElm.Objects);
The wrapper is intentionally thin: methods map closely to ETABS API behavior. No hidden abstraction layer, no black-box magic. If ETABS can do it, ETABSharp can expose it cleanly.
Design principles
1. Thin wrapper, not a replacement
ETABSharp does not try to hide ETABS. It provides safer, cleaner access to the same capabilities.
2. Typed results over ref plumbing
Structured models replace raw out-parameter arrays, improving readability, discoverability, and downstream processing.
3. Practical developer ergonomics
The goal is to reduce repetitive setup code so scripts can focus on model logic, result extraction, and engineering decisions.
The AI / MCP layer
On top of the C# wrapper is an MCP (Model Context Protocol) server that exposes ETABS operations as tools for AI assistants.
With ETABSharp MCP configured (for example in Claude Desktop or VS Code Copilot), you can:
- Query results in natural language: “What is the dead-load base reaction of this model?”
- Modify the model with intent-based commands: “Add a 400x400 C30 rectangular column section.”
- Trigger design workflows: “Check roof-level beams for DCR under ULS load combinations.”
The assistant interprets the request, calls the appropriate ETABSharp tool, and reasons over structured outputs returned from ETABS.
Status
ETABSharp is actively maintained and used in production structural automation work.
- Core wrapper: stable and expanding
- MCP layer: active development and testing
Get it
- GitHub: github.com/tadoEng/EtabSharp
- Doc: deepwiki.com/tadodev/EtabSharp
- NuGet:
dotnet add package EtabSharp --version 0.3.2-beta