ISections 1.0.12

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

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.

Version Downloads Last Updated
1.0.12 172 7/2/2026
1.0.11 108 7/2/2026
1.0.10 107 7/1/2026
1.0.9 188 4/13/2026
1.0.8 111 4/13/2026
1.0.7 115 4/13/2026
1.0.6 109 4/13/2026
1.0.0 112 4/12/2026