Reinforcement (Data Model)
Reinforcement (Data Model)
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