ISections 1.0.12
dotnet add package ISections --version 1.0.12
NuGet\Install-Package ISections -Version 1.0.12
<PackageReference Include="ISections" Version="1.0.12" />
<PackageVersion Include="ISections" Version="1.0.12" />
<PackageReference Include="ISections" />
paket add ISections --version 1.0.12
#r "nuget: ISections, 1.0.12"
#:package ISections@1.0.12
#addin nuget:?package=ISections&version=1.0.12
#tool nuget:?package=ISections&version=1.0.12
ISections
A .NET library providing a catalog of European steel I-section profiles (HEA, HEAA, HEB, HEM, IPE) with their geometric and mechanical properties, embedded directly in the assembly.
Overview
ISections exposes a simple, strongly-typed API to look up cross-section properties by series and nominal size. All 113 profiles are bundled as an embedded JSON resource — no external files or database required at runtime.
Supported Series
| Series | Description |
|---|---|
| HE-A | Wide flange I-sections, series A (light) |
| HE-AA | Wide flange I-sections, series AA (extra light) |
| HE-B | Wide flange I-sections, series B (medium) |
| HE-M | Wide flange I-sections, series M (heavy) |
| IPE | European standard I-sections |
Available Sizes
| Series | Sizes (mm) |
|---|---|
| HE-A | 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 400, 450, 500, 550, 600, 650, 700, 800, 900, 1000 |
| HE-AA | 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 400, 450, 500, 550, 600, 650, 700, 800, 900, 1000 |
| HE-B | 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 400, 450, 500, 550, 600, 650, 700, 800, 900, 1000 |
| HE-M | 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 400, 450, 500, 550, 600, 650, 700, 800, 900, 1000 |
| IPE | 80, 100, 120, 140, 160, 180, 200, 220, 240, 270, 300, 330, 360, 400, 450, 500, 550 |
Properties per Profile
| Property | Description | Unit |
|---|---|---|
Name |
Full designation (e.g. HE 200 A) |
— |
Series |
Profile series (HEA, IPE, …) |
— |
Size |
Nominal size | mm |
G |
Mass per unit length | kg/m |
h |
Total height | mm |
w |
Flange width | mm |
tw |
Web thickness | mm |
tf |
Flange thickness | mm |
r |
Root radius | mm |
A |
Cross-sectional area | cm² |
Iy |
Second moment of area (strong axis) | cm⁴ |
iy |
Radius of gyration (strong axis) | cm |
Iz |
Second moment of area (weak axis) | cm⁴ |
iz |
Radius of gyration (weak axis) | cm |
Wely |
Elastic section modulus (strong axis) | cm³ |
Wply |
Plastic section modulus (strong axis) | cm³ |
Welz |
Elastic section modulus (weak axis) | cm³ |
Wplz |
Plastic section modulus (weak axis) | cm³ |
Usage
using ISections;
ISection profile = ISection.Get("HE-A", 200);
// or, from a single designation string:
profile = ISection.Get("HE-A 200");
Console.WriteLine(profile.Name); // HE 200 A
Console.WriteLine(profile.A); // cross-sectional area in cm²
Console.WriteLine(profile.Iy); // second moment of area in cm⁴
ISection.Get throws ArgumentException when no matching profile exists.
To discover the sizes available for a series, use ISection.Sizes or ISection.SizesString:
int[] sizes = ISection.Sizes("IPE");
// [80, 100, 120, ..., 550]
string[] designations = ISection.SizesString("IPE");
// ["IPE 80", "IPE 100", ..., "IPE 550"] — each usable with ISection.Get(string)
Project Structure
ISections/
├── ISections/ # Class library (NuGet-ready)
│ └── ISection.cs # Record type + static catalog
├── ISections.Demo/ # Minimal console demo
│ └── Program.cs
├── ISections.Tests/ # xUnit test suite
│ └── ISectionTests.cs
└── assets/
├── profiles.json # Embedded profile data (113 profiles)
└── raw/ # Source spreadsheets + R extraction script
├── profiles/ # Per-series XLSX files (source data)
└── extract-json.R # R script that produced profiles.json
Building and Running
Requires .NET 10 SDK.
# Build the library
dotnet build ISections/ISections.csproj
# Run the demo
dotnet run --project ISections.Demo
# Run the tests
dotnet test ISections.Tests
Data
Profile data was extracted from manufacturer tables using the R script at assets/raw/extract-json.R and serialised to assets/profiles.json. The raw source spreadsheets are in assets/raw/profiles/.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.