Eriksson Beam API
Search Results for

    Show / Hide Table of Contents

    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

    • Data Model Overview - BeamDesign structure
    • ConcreteExtents - Section geometry
    • StructuralModel - Loading and supports
    • Edit this page
    In this article
    Back to top Generated by DocFX