DesignCriteria
DesignCriteria contains project information, material properties, load combinations, and various design settings.
Structure
public class DesignCriteria
{
public ProjectInformation ProjectInformation { get; set; }
public MaterialProperties MaterialProperties { get; set; }
public LoadCombinations LoadCombinations { get; set; }
public Settings Settings { get; set; }
}
ProjectInformation
Basic project metadata.
var info = design.DesignCriteria.ProjectInformation;
// Read values
string projectName = info.ProjectName;
string clientName = info.ClientName;
string designerName = info.DesignerName;
DateTime date = info.Date;
// Modify values
info.ProjectName = "Bridge Beam A1";
info.ClientName = "ACME Construction";
info.DesignerName = "Jane Doe";
info.Date = DateTime.Now;
Properties
| Property | Type | Description |
|---|---|---|
ProjectName |
string | Project identifier |
ClientName |
string | Client or owner name |
DesignerName |
string | Engineer's name |
Date |
DateTime | Design date |
Notes |
string | Additional notes |
MaterialProperties
Concrete and reinforcement material definitions.
var materials = design.DesignCriteria.MaterialProperties;
// Access concrete properties
var concrete = materials.Concrete;
// Access reinforcement properties
var prestressSteel = materials.PrestressSteel;
var mildSteel = materials.MildSteel;
Concrete Properties
| Property | Type | Unit | Description |
|---|---|---|---|
fci |
double | psi | Initial concrete strength |
fc |
double | psi | 28-day concrete strength |
Eci |
double | psi | Initial modulus of elasticity |
Ec |
double | psi | Final modulus of elasticity |
UnitWeight |
double | pcf | Concrete unit weight |
Example: Material Setup
var design = await client.PullBeamDesignerAsync();
var materials = design.DesignCriteria.MaterialProperties;
// Set concrete properties
materials.Concrete.fc = 6000; // 6000 psi
materials.Concrete.fci = 4500; // 4500 psi initial
materials.Concrete.UnitWeight = 150; // 150 pcf
await client.PushBeamDesignerAsync("", design);
LoadCombinations
Design load combinations for various limit states.
var loadCombos = design.DesignCriteria.LoadCombinations;
// Access combination list
var combinations = loadCombos.Combinations;
foreach (var combo in combinations)
{
Console.WriteLine($"{combo.Name}: {combo.Description}");
}
Load Combination Properties
| Property | Type | Description |
|---|---|---|
Name |
string | Combination identifier |
Description |
string | Combination description |
LoadFactors |
Dictionary | Load type to factor mapping |
LimitState |
LimitState | Service, Strength, etc. |
Settings
Various design and analysis settings organized by category.
var settings = design.DesignCriteria.Settings;
// Access different setting categories
var transferSettings = settings.Transfer;
var flexureSettings = settings.Flexure;
var shearSettings = settings.Shear;
var deflectionSettings = settings.Deflection;
var developmentSettings = settings.Development;
Transfer Settings
Settings for transfer (release) condition.
| Property | Type | Description |
|---|---|---|
TransferLength |
double | Strand transfer length |
CheckTopTension |
bool | Check top fiber tension |
MaxTopTension |
double | Maximum top tension allowed |
Flexure Settings
Flexural design parameters.
| Property | Type | Description |
|---|---|---|
PhiFlexure |
double | Flexure strength reduction factor |
CheckMinReinforcement |
bool | Apply minimum reinforcement check |
Shear Settings
Shear design parameters.
| Property | Type | Description |
|---|---|---|
PhiShear |
double | Shear strength reduction factor |
ShearMethod |
ShearMethod | Shear calculation method |
Torsion Settings
Torsion design parameters.
| Property | Type | Description |
|---|---|---|
PhiTorsion |
double | Torsion strength reduction factor |
IncludeTorsion |
bool | Include torsion in design |
Deflection Settings
Deflection analysis parameters.
| Property | Type | Description |
|---|---|---|
LongTermFactor |
double | Long-term deflection multiplier |
DeflectionLimit |
double | Maximum allowable deflection |
Development Settings
Reinforcement development parameters.
| Property | Type | Description |
|---|---|---|
TopBarFactor |
double | Top bar modification factor |
CoatingFactor |
double | Epoxy coating factor |
Complete Example
using System;
using System.Threading.Tasks;
using ErikssonBeam.API.BeamClient;
using ErikssonBeam.API.BeamDesigner;
class DesignCriteriaExample
{
static async Task ConfigureDesignCriteria(ErikssonBeamClient client)
{
var design = await client.PullBeamDesignerAsync();
var criteria = design.DesignCriteria;
// Project Information
criteria.ProjectInformation.ProjectName = "Highway Bridge Beam";
criteria.ProjectInformation.ClientName = "State DOT";
criteria.ProjectInformation.DesignerName = "J. Smith, P.E.";
criteria.ProjectInformation.Date = DateTime.Now;
// Materials
var materials = criteria.MaterialProperties;
materials.Concrete.fc = 8000; // High-strength concrete
materials.Concrete.fci = 6000;
materials.Concrete.UnitWeight = 150;
// Design Settings
var settings = criteria.Settings;
settings.Flexure.PhiFlexure = 0.9;
settings.Shear.PhiShear = 0.75;
// Deflection criteria
settings.Deflection.LongTermFactor = 2.0;
await client.PushBeamDesignerAsync("", design);
Console.WriteLine("Design criteria configured successfully");
}
static async Task DisplayCriteria(ErikssonBeamClient client)
{
var design = await client.PullBeamDesignerAsync();
var criteria = design.DesignCriteria;
Console.WriteLine("=== Design Criteria ===\n");
// Project Info
var info = criteria.ProjectInformation;
Console.WriteLine("Project Information:");
Console.WriteLine($" Project: {info.ProjectName}");
Console.WriteLine($" Client: {info.ClientName}");
Console.WriteLine($" Designer: {info.DesignerName}");
Console.WriteLine($" Date: {info.Date:yyyy-MM-dd}");
// Materials
var concrete = criteria.MaterialProperties.Concrete;
Console.WriteLine("\nConcrete Properties:");
Console.WriteLine($" f'c: {concrete.fc} psi");
Console.WriteLine($" f'ci: {concrete.fci} psi");
Console.WriteLine($" Unit Weight: {concrete.UnitWeight} pcf");
// Settings
var settings = criteria.Settings;
Console.WriteLine("\nDesign Settings:");
Console.WriteLine($" Phi Flexure: {settings.Flexure.PhiFlexure}");
Console.WriteLine($" Phi Shear: {settings.Shear.PhiShear}");
}
}
See Also
- Data Model Overview - BeamDesign structure
- StructuralModel - Loading and supports
- Reinforcement - Steel reinforcement