EtabSharp 0.3.5-beta

This is a prerelease version of EtabSharp.
dotnet add package EtabSharp --version 0.3.5-beta
                    
NuGet\Install-Package EtabSharp -Version 0.3.5-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.5-beta" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EtabSharp" Version="0.3.5-beta" />
                    
Directory.Packages.props
<PackageReference Include="EtabSharp" />
                    
Project file
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.5-beta
                    
#r "nuget: EtabSharp, 0.3.5-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.5-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.5-beta&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=EtabSharp&version=0.3.5-beta&prerelease
                    
Install as a Cake Tool

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 Ask DeepWiki

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 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.

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 71 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.5-beta
* Minimum supported ETABS version is now 22 (ETABSv1.dll API v2.0.0, .NET Standard 2.0)
* Added ETABS 24 and ETABS 23 to auto-detection order in .targets file (newest wins)
* Dropped ETABS 21 support — pre-v22 DLLs are COM-only and incompatible
* Added ExcludeFromSingleFile=true so ETABSv1.dll is never bundled inside
a PublishSingleFile exe (fixes API version mismatch error on hidden instance launch)
* Added EtabSharp_CopyEtabsDllToPublish target so dotnet publish reliably
copies ETABSv1.dll to the publish output folder alongside the exe