internal RectangularSectionSinglyReinforced(double b, double h, double A_s, double c_cntr,
                                                    ConcreteMaterial ConcreteMaterial, RebarMaterial LongitudinalRebarMaterial, bool hasTies = false)
        {
            KodestructAci.ConfinementReinforcementType ConfinementReinforcementType;
            if (hasTies == true)
            {
                ConfinementReinforcementType = KodestructAci.ConfinementReinforcementType.Ties;
            }
            else
            {
                ConfinementReinforcementType = KodestructAci.ConfinementReinforcementType.NoReinforcement;
            }

            CrossSectionRectangularShape shape = new CrossSectionRectangularShape(ConcreteMaterial.Concrete, null, b, h);

            base.ConcreteMaterial = ConcreteMaterial; //duplicate save of concrete material into base Dynamo class

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

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

            KodestructAci.IConcreteFlexuralMember fs = new KodestructAci14.ConcreteSectionFlexure(shape, LongitudinalBars, new CalcLog(), ConfinementReinforcementType);
            this.FlexuralSection = fs;
        }
Example #2
0
 internal RebarPoint(double A_b, double X_shp, double Y_shp, RebarMaterial RebarMaterial)
 {
     KodestructAci.Rebar b = new KodestructAci.Rebar(A_b, RebarMaterial.Material);
     this.RebarPointLData = new KodestructAci.RebarPoint(b, new KodestructAci.RebarCoordinate()
     {
         X = X_shp, Y = Y_shp
     });
 }
Example #3
0
        protected virtual void CalculateElements()
        {
            List <RebarPoint> RebarPoints = new List <RebarPoint>();


            double dx = NodeJ.X - NodeI.X;
            double dy = NodeJ.Y - NodeI.Y;


            Vector seg = new Vector(dx, dy);
            int    N   = NumberOfSubdivisions;
            int    NumberOfRebarPoints = NumberOfSubdivisions + 1;

            double segDx;
            double segDy;

            double PointArea = A_total / NumberOfRebarPoints;
            Rebar  rebar     = new Rebar(PointArea, rebarMaterial);


            if (setBackCornerBars == false)
            {
                segDx = dx / N;
                segDy = dy / N;

                RebarCoordinate coord1 = new RebarCoordinate(NodeI.X, NodeI.Y);
                RebarPoints.Add(new RebarPoint(rebar, coord1));

                for (int i = 0; i < NumberOfSubdivisions; i++)
                {
                    RebarCoordinate Pt = new RebarCoordinate(NodeI.X + (i + 1) * segDx, NodeI.Y + (i + 1) * segDy);
                    RebarPoints.Add(new RebarPoint(rebar, Pt));
                }
            }
            else
            {
                segDx = dx / (N + 1.0);
                segDy = dy / (N + 1.0);

                for (int i = 0; i < NumberOfSubdivisions; i++)
                {
                    RebarCoordinate Pt = new RebarCoordinate(NodeI.X + (i + 1) * segDx, NodeI.Y + (i + 1) * segDy);
                    RebarPoints.Add(new RebarPoint(rebar, Pt));
                }
            }
            this.rebarPoints = RebarPoints;
        }