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;
        }
Exemple #2
0
        public RebarPointResult(double Stress, double Strain, double Force, double DistanceToNa, RebarPoint Point)

        {
            this.Stress = Stress;
            this.Strain = Strain;
            this.Force  = Force;
            this.DistanceToNeutralAxis = DistanceToNa;
            this.Point = Point;
        }
Exemple #3
0
        protected RebarPoint FindRebarWithExtremeCoordinate(BarCoordinateFilter CoordinateFilter, BarCoordinateLimitFilterType LimitFilter, double CutoffCoordinate)
        {
            RebarPoint returnBar = null;

            RebarPoint maxXRebar = null;
            RebarPoint maxYRebar = null;
            RebarPoint minXRebar = null;
            RebarPoint minYRebar = null;

            double MaxY = double.NegativeInfinity;
            double MaxX = double.NegativeInfinity;
            double MinY = double.PositiveInfinity;
            double MinX = double.PositiveInfinity;

            if (longitBars.Count == 0)
            {
                throw new NoRebarException();
            }

            foreach (var bar in longitBars)
            {
                if (bar.Coordinate.X > MaxX)
                {
                    if (bar.Coordinate.X < CutoffCoordinate)
                    {
                        maxXRebar = bar;
                        MaxX      = bar.Coordinate.X;
                    }
                }

                if (bar.Coordinate.Y > MaxY)
                {
                    if (bar.Coordinate.Y < CutoffCoordinate)
                    {
                        maxYRebar = bar;
                        MaxY      = bar.Coordinate.Y;
                    }
                }
                if (bar.Coordinate.X < MinX)
                {
                    if (bar.Coordinate.X > CutoffCoordinate)
                    {
                        minXRebar = bar;
                        MinX      = bar.Coordinate.X;
                    }
                }

                if (bar.Coordinate.Y < MinY)
                {
                    if (bar.Coordinate.Y > CutoffCoordinate)
                    {
                        minYRebar = bar;
                        MinY      = bar.Coordinate.Y;
                    }
                }
            }

            if (CoordinateFilter == BarCoordinateFilter.X && LimitFilter == BarCoordinateLimitFilterType.Maximum)
            {
                returnBar = maxXRebar;
            }

            if (CoordinateFilter == BarCoordinateFilter.X && LimitFilter == BarCoordinateLimitFilterType.Minimum)
            {
                returnBar = minXRebar;
            }

            if (CoordinateFilter == BarCoordinateFilter.Y && LimitFilter == BarCoordinateLimitFilterType.Maximum)
            {
                returnBar = maxYRebar;
            }

            if (CoordinateFilter == BarCoordinateFilter.Y && LimitFilter == BarCoordinateLimitFilterType.Minimum)
            {
                returnBar = minYRebar;
            }

            return(returnBar);
        }