Reinforcement
Reinforcement contains all steel reinforcement definitions including prestressing strands, mild steel rebar, transverse reinforcement, and welded wire reinforcement.
Structure
public class Reinforcement
{
public Prestress Prestress { get; set; }
public Rebar Rebar { get; set; }
public TransverseReinforcement TransverseReinforcement { get; set; }
public WeldedWireReinforcement WeldedWireReinforcement { get; set; }
}
Prestress
Prestressing strand configuration.
var prestress = design.Reinforcement.Prestress;
// Access strand groups
var strandGroups = prestress.StrandGroups;
foreach (var group in strandGroups)
{
Console.WriteLine($"Strands: {group.NumberOfStrands} at {group.BottomCover}\" from bottom");
}
Prestress Properties
| Property |
Type |
Description |
StrandGroups |
List |
Collection of strand group definitions |
StrandDiameter |
double |
Strand diameter (inches) |
StrandArea |
double |
Area per strand (sq in) |
Fpu |
double |
Ultimate strength (psi) |
Fpy |
double |
Yield strength (psi) |
InitialStress |
double |
Jacking stress (psi) |
StrandGroup Properties
| Property |
Type |
Unit |
Description |
NumberOfStrands |
int |
- |
Number of strands in group |
BottomCover |
double |
inches |
Distance from bottom fiber |
IsHarped |
bool |
- |
Whether strands are harped |
HarpPoint1 |
double |
inches |
First harp point location |
HarpPoint2 |
double |
inches |
Second harp point location |
EndEccentricity |
double |
inches |
Strand height at ends (harped) |
DebondLength |
double |
inches |
Length of debonding |
DebondLeft |
bool |
- |
Debond at left end |
DebondRight |
bool |
- |
Debond at right end |
Example: Prestress Configuration
var design = await client.PullBeamDesignerAsync();
var prestress = design.Reinforcement.Prestress;
// Clear existing and add new strand groups
prestress.StrandGroups.Clear();
// Bottom straight strands
prestress.StrandGroups.Add(new StrandGroup
{
NumberOfStrands = 8,
BottomCover = 2.0,
IsHarped = false
});
// Harped strands
prestress.StrandGroups.Add(new StrandGroup
{
NumberOfStrands = 4,
BottomCover = 4.0,
IsHarped = true,
HarpPoint1 = 48, // 4' from left
HarpPoint2 = 192, // 4' from right (on 20' beam)
EndEccentricity = 18 // Rise to 18" at ends
});
await client.PushBeamDesignerAsync("", design);
Rebar
Mild steel longitudinal reinforcement.
var rebar = design.Reinforcement.Rebar;
// Access top and bottom bars
var topBars = rebar.TopBars;
var bottomBars = rebar.BottomBars;
Rebar Properties
| Property |
Type |
Description |
TopBars |
List |
Top longitudinal bars |
BottomBars |
List |
Bottom longitudinal bars |
SideBars |
List |
Side face reinforcement |
RebarGroup Properties
| Property |
Type |
Unit |
Description |
BarSize |
BarSize |
- |
Bar designation (#3, #4, etc.) |
NumberOfBars |
int |
- |
Number of bars |
Cover |
double |
inches |
Clear cover |
StartLocation |
double |
inches |
Bar start position |
EndLocation |
double |
inches |
Bar end position |
Grade |
int |
ksi |
Steel grade (60, 80, etc.) |
Example: Rebar Configuration
var design = await client.PullBeamDesignerAsync();
var rebar = design.Reinforcement.Rebar;
// Add top bars
rebar.TopBars.Clear();
rebar.TopBars.Add(new RebarGroup
{
BarSize = BarSize.No5,
NumberOfBars = 2,
Cover = 2.0,
StartLocation = 0,
EndLocation = 240, // Full length
Grade = 60
});
// Add bottom bars
rebar.BottomBars.Clear();
rebar.BottomBars.Add(new RebarGroup
{
BarSize = BarSize.No4,
NumberOfBars = 2,
Cover = 1.5,
StartLocation = 0,
EndLocation = 240,
Grade = 60
});
await client.PushBeamDesignerAsync("", design);
TransverseReinforcement
Shear reinforcement (stirrups).
var transverse = design.Reinforcement.TransverseReinforcement;
// Access stirrup zones
var zones = transverse.Zones;
TransverseZone Properties
| Property |
Type |
Unit |
Description |
StartLocation |
double |
inches |
Zone start |
EndLocation |
double |
inches |
Zone end |
BarSize |
BarSize |
- |
Stirrup bar size |
Spacing |
double |
inches |
Stirrup spacing |
Legs |
int |
- |
Number of legs |
Example: Stirrups
var design = await client.PullBeamDesignerAsync();
var transverse = design.Reinforcement.TransverseReinforcement;
// Clear and add stirrup zones
transverse.Zones.Clear();
// End zone - tighter spacing
transverse.Zones.Add(new TransverseZone
{
StartLocation = 0,
EndLocation = 48, // 4' end zone
BarSize = BarSize.No4,
Spacing = 4, // 4" spacing
Legs = 2
});
// Middle zone - wider spacing
transverse.Zones.Add(new TransverseZone
{
StartLocation = 48,
EndLocation = 192,
BarSize = BarSize.No4,
Spacing = 12, // 12" spacing
Legs = 2
});
// Other end zone
transverse.Zones.Add(new TransverseZone
{
StartLocation = 192,
EndLocation = 240,
BarSize = BarSize.No4,
Spacing = 4,
Legs = 2
});
await client.PushBeamDesignerAsync("", design);
WeldedWireReinforcement
Welded wire mesh reinforcement.
var wwr = design.Reinforcement.WeldedWireReinforcement;
// Access WWR layers
var layers = wwr.Layers;
WWRLayer Properties
| Property |
Type |
Unit |
Description |
Designation |
string |
- |
Wire designation (e.g., "6x6-W2.9xW2.9") |
Cover |
double |
inches |
Clear cover |
StartLocation |
double |
inches |
Start position |
EndLocation |
double |
inches |
End position |
BarSize Enumeration
| Value |
Description |
No3 |
#3 bar (0.375" dia) |
No4 |
#4 bar (0.500" dia) |
No5 |
#5 bar (0.625" dia) |
No6 |
#6 bar (0.750" dia) |
No7 |
#7 bar (0.875" dia) |
No8 |
#8 bar (1.000" dia) |
No9 |
#9 bar (1.128" dia) |
No10 |
#10 bar (1.270" dia) |
No11 |
#11 bar (1.410" dia) |
Complete Example
using System;
using System.Threading.Tasks;
using ErikssonBeam.API.BeamClient;
using ErikssonBeam.API.BeamDesigner;
class ReinforcementExample
{
static async Task ConfigureReinforcement(ErikssonBeamClient client)
{
var design = await client.PullBeamDesignerAsync();
var reinf = design.Reinforcement;
// Prestressing
reinf.Prestress.StrandGroups.Clear();
reinf.Prestress.StrandGroups.Add(new StrandGroup
{
NumberOfStrands = 10,
BottomCover = 2.5,
IsHarped = false
});
// Top mild steel
reinf.Rebar.TopBars.Clear();
reinf.Rebar.TopBars.Add(new RebarGroup
{
BarSize = BarSize.No5,
NumberOfBars = 2,
Cover = 2.0,
StartLocation = 0,
EndLocation = 240
});
// Stirrups
reinf.TransverseReinforcement.Zones.Clear();
reinf.TransverseReinforcement.Zones.Add(new TransverseZone
{
StartLocation = 0,
EndLocation = 240,
BarSize = BarSize.No4,
Spacing = 6,
Legs = 2
});
await client.PushBeamDesignerAsync("", design);
Console.WriteLine("Reinforcement configured");
}
static async Task DisplayReinforcement(ErikssonBeamClient client)
{
var design = await client.PullBeamDesignerAsync();
var reinf = design.Reinforcement;
Console.WriteLine("=== Reinforcement Summary ===\n");
// Prestress
Console.WriteLine("Prestressing:");
foreach (var group in reinf.Prestress.StrandGroups ?? Enumerable.Empty<StrandGroup>())
{
string type = group.IsHarped ? "Harped" : "Straight";
Console.WriteLine($" {group.NumberOfStrands} strands at {group.BottomCover}\" ({type})");
}
// Rebar
Console.WriteLine("\nMild Steel:");
Console.WriteLine($" Top Bars: {reinf.Rebar.TopBars?.Count ?? 0} groups");
Console.WriteLine($" Bottom Bars: {reinf.Rebar.BottomBars?.Count ?? 0} groups");
// Transverse
Console.WriteLine("\nTransverse Reinforcement:");
foreach (var zone in reinf.TransverseReinforcement.Zones ?? Enumerable.Empty<TransverseZone>())
{
Console.WriteLine($" {zone.StartLocation}\"-{zone.EndLocation}\": {zone.BarSize} @ {zone.Spacing}\"");
}
}
}
See Also