EtabSharp 0.3.2-beta
This is a prerelease version of EtabSharp.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package EtabSharp --version 0.3.2-beta
NuGet\Install-Package EtabSharp -Version 0.3.2-beta
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EtabSharp" Version="0.3.2-beta" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EtabSharp" Version="0.3.2-beta" />
<PackageReference Include="EtabSharp" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EtabSharp --version 0.3.2-beta
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EtabSharp, 0.3.2-beta"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EtabSharp@0.3.2-beta
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EtabSharp&version=0.3.2-beta&prerelease
#tool nuget:?package=EtabSharp&version=0.3.2-beta&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
EtabSharp
A modern, strongly-typed .NET wrapper for ETABS API (v22 and later).
Features
- 🎯 Strongly-typed API with full IntelliSense support
- 🔄 Automatic version detection and compatibility checking
- 📊 Comprehensive coverage of ETABS functionality
- 🛡️ Type-safe property management and operations
- 📝 Extensive documentation with XML comments
- ⚡ Performance optimized with lazy loading
Requirements
- ETABS v22 or later must be installed on your machine
- .NET 10.0 or later
- Windows OS (ETABS is Windows-only)
Installation
dotnet add package EtabSharp
Quick Start
using EtabSharp.Core;
// Connect to running ETABS instance
using var etabs = ETABSWrapper.Connect();
if (etabs == null)
{
Console.WriteLine("No ETABS instance found. Please start ETABS first.");
return;
}
// Access model components
var model = etabs.Model;
// Create a concrete material
var concrete = model.Materials.AddConcreteMaterial("C30", fc: 30, ec: 25000);
// Create a rectangular column
var column = model.PropFrame.AddRectangularSection("COL-400x400", "C30", 400, 400);
// Add a frame between two points
var frame = model.Frames.AddFrame("1", "2", "COL-400x400");
// Run analysis
model.Analyze.CreateAnalysisModel();
model.Analyze.RunAnalysis();
// Get results
var displacements = model.AnalysisResults.GetJointDispl("", eItemTypeElm.Objects);
Documentation
Full documentation available at
Important Notes
ETABSv1.dll Reference
This package does NOT include ETABSv1.dll. You must have ETABS installed on your machine. The wrapper will automatically locate the DLL from your ETABS installation.
Supported ETABS Versions
- ETABS v22.x ✅
- ETABS v23.x ✅
- Earlier versions ❌ (not supported)
License
MIT License - see LICENSE file for details.
Contributing
Contributions welcome! Please read CONTRIBUTING.md first.
Support
EtabSharp
EtabSharp/
├── Core/ # Application & Model wrappers
│ ├── ETABSApplication.cs
│ ├── ETABSModel.cs
│ ├── ETABSWrapper.cs
│ └── Models/
│
├── Properties/ # Define → Section Properties
│ ├── Materials/ # Define → Material
│ │ ├── MaterialManager.cs (implements IPropMaterial)
│ │ ├── Constants/
│ │ └── Models/
│ ├── Frames/ # Define → Frame Sections
│ │ ├── FramePropertyManager.cs (implements IPropFrame)
│ │ └── Models/
│ ├── Areas/ # Define → Slab & Wall
│ │ ├── AreaPropertyManager.cs (implements IPropArea)
│ │ └── Models/
│ ├── Links/ # Define → Link/Support
│ │ └── (future)
│ └── Cables/ # Define → Cable
│ └── (future)
│
├── Elements/ # Draw → Objects
│ ├── Stories/ # Edit → Story
│ │ ├── StoryManager.cs (implements IStory)
│ │ └── Models/
│ ├── Points/ # Draw → Point
│ │ ├── PointObjectManager.cs (implements IPointObject)
│ │ └── Models/
│ ├── Frames/ # Draw → Frame
│ │ ├── FrameObjectManager.cs (implements IFrameObject)
│ │ └── Models/
│ ├── Areas/ # Draw → Slab/Wall
│ │ ├── AreaObjectManager.cs (implements IAreaObject)
│ │ └── Models/
│ └── Selection/ # Select menu
│ ├── SelectionManager.cs (implements ISelection)
│ └── Models/
│
├── Labels/ # Define → Pier/Spandrel Labels
│ ├── Piers/
│ │ ├── PierLabelManager.cs (implements IPierLabel)
│ │ └── Models/
│ └── Spandrels/
│ ├── SpandrelLabelManager.cs (implements ISpandrelLabel)
│ └── Models/
│
├── Groups/ # Define → Groups
│ ├── GroupManager.cs (implements IGroup)
│ └── Models/
│
├── Loads/ # Define → Load Patterns/Cases/Combos
│ ├── Patterns/
│ │ ├── LoadPatternManager.cs (implements ILoadPattern)
│ │ └── Models/
│ ├── Cases/
│ │ ├── LoadCaseManager.cs (implements ILoadCase)
│ │ └── Models/
│ ├── Combos/
│ │ ├── LoadComboManager.cs (implements ILoadCombo)
│ │ └── Models/
│ └── Assignment/ # Assign → Loads
│ ├── LoadAssignmentManager.cs
│ └── Models/
│
├── Analysis/ # Analyze menu
│ ├── AnalysisManager.cs (implements IAnalysis)
│ ├── ResultSetup/
│ │ ├── ResultSetupManager.cs (implements IResultSetup)
│ │ └── Models/
│ ├── Results/
│ │ ├── ResultsManager.cs (implements IResults)
│ │ └── Models/
│ └── Models/
│
├── Design/ # Design menu
│ ├── Concrete/
│ │ ├── ConcreteDesignManager.cs (implements IConcreteDesign)
│ │ └── Models/
│ ├── Steel/
│ │ ├── SteelDesignManager.cs (implements ISteelDesign)
│ │ └── Models/
│ ├── Shearwall/
│ │ ├── ShearwallDesignManager.cs (implements IShearwallDesign)
│ │ └── Models/
│ ├── Composite/
│ │ └── (future)
│ └── Forces/ # Design → Steel/Concrete Frame Design Forces
│ ├── DesignForceManager.cs
│ └── Models/
│
├── Tables/ # Display → Show Tables (Ctrl+T)
│ ├── DatabaseTableManager.cs (implements IDatabaseTable)
│ └── Models/
│
├── System/ # File, Units, Model Info
│ ├── FileManager.cs (implements IFiles)
│ ├── UnitManager.cs (implements IUnitSystem)
│ ├── ModelInfoManager.cs (implements ISapModelInfor)
│ └── Models/
│
├── Interfaces/
│ ├── Properties/
│ ├── Elements/
│ ├── Labels/
│ ├── Groups/
│ ├── Loads/
│ ├── Analysis/
│ ├── Design/
│ ├── Tables/
│ └── System/
│
└── Exceptions/
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Microsoft.Extensions.Logging (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
-
net8.0
- Microsoft.Extensions.Logging (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.5-beta | 72 | 3/30/2026 |
| 0.3.4-beta | 58 | 3/30/2026 |
| 0.3.3-beta | 73 | 3/16/2026 |
| 0.3.2-beta | 68 | 3/13/2026 |
| 0.3.1-beta | 64 | 3/4/2026 |
| 0.3.0-beta | 70 | 3/2/2026 |
| 0.2.1-beta | 67 | 1/24/2026 |
| 0.2.0-beta | 160 | 12/24/2025 |
| 0.1.2-beta | 150 | 12/14/2025 |
v0.3.1-beta
* Update dispose behavior correctly dispose of COM objects and release ETABS reference