Skip to main content

API Reference

The Armatura Core API is organized around the StructuralModel class. You create a model, populate it with structural elements and loads, run analysis, and query results.

Namespace structure

SamLabs.Armatura.Core
├── Structural/ — StructuralModel, Node, Member, Support
│ ├── Materials/ — IMaterial, Steel, SteelLibrary
│ ├── Sections/ — SectionPropertiesBase and all section types
│ ├── Member/ — Member, MemberType
│ └── Loads/ — LoadCaseBase, NodalLoad, DistributedLoad
│ ├── Applied/ — UniformDistributedLoad, LinearlyVaryingLoad, etc.
│ └── Combination/ — LoadCombination
├── Analysis/
│ ├── Nodes/ — DoF, Node, Support
│ └── Results/ — AnalysisResultSet, result structs, LinearSuperposition
├── Geometry/ — Point3D
└── ArmaturaProject — project-level container for multiple models

Typical workflow

// 1. Build
var model = new StructuralModel("My Structure");
// ... add nodes, members, supports, loads ...

// 2. Analyze
var results = model.RunAnalysis();

// 3. Query
var displacement = results.GetDisplacementEnvelope(nodeId);
var forces = results.GetMemberForces(memberId);
var governing = results.GetGoverningUtilization(memberId);

// 4. Save
var project = new ArmaturaProject("My Project");
project.AddModel(model);
project.Save("path/to/project");

Immutability

AnalysisResultSet is immutable after construction. You query it but never modify it. If you change the model and re-analyze, you get a new result set.

Thread safety

The model is not thread-safe for concurrent writes. Analysis can run on a background thread. The result set is safe for concurrent reads.