internal RectangularSectionSinglyReinforced(double b, double h, double A_s, double c_cntr,
        ConcreteMaterial ConcreteMaterial, RebarMaterial LongitudinalRebarMaterial, bool hasTies=false)
        {

            CrossSectionRectangularShape shape = new CrossSectionRectangularShape(ConcreteMaterial.Concrete, null, b, h);
            base.ConcreteMaterial = ConcreteMaterial; //duplicate save of concrete material into base Dynamo class

            List<wosadAci.RebarPoint> LongitudinalBars = new List<wosadAci.RebarPoint>();

                wosadAci.Rebar thisBar = new wosadAci.Rebar(A_s, LongitudinalRebarMaterial.Material);
                wosadAci.RebarPoint point = new wosadAci.RebarPoint(thisBar, new wosadAci.RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr });
            LongitudinalBars.Add(point);

            wosadAci.IConcreteFlexuralMember fs = new wosadAci14.ConcreteSectionFlexure(shape, LongitudinalBars, new CalcLog());
            this.FlexuralSection = fs;
        }
Esempio n. 2
0
        public static Dictionary <string, object> ConcreteMaterialMechanicalProperties(ConcreteMaterial ConcreteMaterial,
                                                                                       double Density = 0, string Code = "ACI318-14")
        {
            //Default values
            double           E   = 0;
            double           f_r = 0;
            ConcreteMaterial cm  = ConcreteMaterial;


            //Calculation logic:

            Kodestruct.Concrete.ACI318_14.Materials.ConcreteMaterial mat =
                new Kodestruct.Concrete.ACI318_14.Materials.ConcreteMaterial(cm.Concrete.SpecifiedCompressiveStrength, cm.Concrete.TypeByWeight, Density, null);

            E   = mat.ModulusOfElasticity / 1000.0;
            f_r = mat.ModulusOfRupture / 1000.0;


            return(new Dictionary <string, object>
            {
                { "E", E }
                , { "f_r", f_r }
            });
        }
        /// <summary>
         /// Rectangular section singly reinforced (Use where ConcreteSection type is required)
        /// </summary>
         /// <param name="b">Width of compression face of member</param>
         /// <param name="h">Overall thickness, height, or depth of member</param>
         /// <param name="A_s">Area of nonprestressed longitudinal tension reinforcement</param>
         /// <param name="c_cntr">Concrete cover to tension rebar centroid</param>
         /// <param name="ConcreteMaterial">Concrete material</param>
         /// <param name="LongitudinalRebarMaterial">Rebar material for longitudinal bars</param>
         /// <returns name="RectangularSectionSinglyReinforced">  Section [OBJECT] </returns>

        public static RectangularSectionSinglyReinforced ByWidthHeigthAndReinforcementArea(double b, double h, double A_s, double c_cntr,
            ConcreteMaterial ConcreteMaterial,RebarMaterial LongitudinalRebarMaterial)
        {
            return new RectangularSectionSinglyReinforced(b, h, A_s, c_cntr, ConcreteMaterial, LongitudinalRebarMaterial);
        }