Files
StructureHelper/StructureHelperLogics/Models/BeamShears/BeamShearSection.cs
2025-06-21 21:34:20 +05:00

38 lines
1.5 KiB
C#

using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Models.Shapes;
using StructureHelperLogics.Models.Materials;
namespace StructureHelperLogics.Models.BeamShears
{
public class BeamShearSection : IBeamShearSection
{
private IUpdateStrategy<IBeamShearSection> updateStrategy;
public Guid Id { get; }
public string? Name { get; set; }
/// <inheritdoc/>
public IConcreteLibMaterial ConcreteMaterial { get; set; }
/// <inheritdoc/>
public IShape Shape { get; set; } = new RectangleShape(Guid.NewGuid()) { Height = 0.6, Width = 0.4};
public double CenterCover { get; set; } = 0.05;
public double ReinforcementArea { get; set; } = 0;
public IReinforcementLibMaterial ReinforcementMaterial { get; set; }
public BeamShearSection(Guid id)
{
Id = id;
ConcreteMaterial = ConcreteLibMaterialFactory.GetConcreteLibMaterial(ConcreteLibTypes.Concrete25);
ReinforcementMaterial = HeadMaterialFactory.GetHeadMaterial(HeadmaterialType.Reinforcement500).HelperMaterial as IReinforcementLibMaterial;
ConcreteMaterial.TensionForULS = true;
}
public object Clone()
{
BeamShearSection newItem = new(Guid.NewGuid());
updateStrategy ??= new BeamShearSectionUpdateStrategy();
updateStrategy.Update(newItem, this);
return newItem;
}
}
}