public void ShapeFactoryReturnsValueForIBeam()
        {
            AiscShapeFactory factory = new AiscShapeFactory();
            ISection         section = factory.GetShape("W18X35", Entities.ShapeTypeSteel.IShapeRolled);

            Assert.IsTrue(section != null);
        }
        public void ShapeFactoryReturnsValueForAngleParsed()
        {
            AiscShapeFactory factory = new AiscShapeFactory();
            ISection         section = factory.GetShape("L3-1/2X3X1/4");

            Assert.IsTrue(section is ISectionAngle);
        }
        public void ShapeFactoryReturnsValueForCircHSSParsed()
        {
            AiscShapeFactory factory = new AiscShapeFactory();
            ISection         section = factory.GetShape("HSS6X.500");

            Assert.IsTrue(section is ISectionPipe);
        }
        //4.5 EXAMPLE 3: COMPOSITE BEAM
        //WITH UNREINFORCED OPENING
        private void SetExample3Values()
        {
            A_s      = 13.0;
            d        = 20.66;
            t_w      = 0.35;
            t_s      = 4.0;
            t_deck   = 2.0;
            t_fill   = 2.0;
            t_e      = 2.0;
            b_e      = 108.0;
            h_0      = 11.0;
            a_o      = 22.0;
            s_b      = 4.83;
            s_t      = 4.83;
            DeltaA_s = 3.85;
            A_sn     = 9.15;
            Q_n      = 21.0;

            AiscShapeFactory f = new AiscShapeFactory();

            section  = f.GetShape("W21X44") as ISectionI;
            F_y      = 36.0;
            f_cPrime = 3.0;
            N_studs  = 9;
            N_o      = 1.0;
            e        = 0.0;
            t_r      = 0.0;
            b_r      = 0.0;
        }
Beispiel #5
0
        public void ShapeFactoryReturnsValueForPipeParsed()
        {
            AiscShapeFactory factory = new AiscShapeFactory();
            ISection         section = factory.GetShape("PIPE6XXS");

            Assert.IsTrue(section is ISectionPipe);
        }
        public void OpeningCompositeReturnsShearStrengthSpreadsheet()
        {
            d      = 18.24;
            t_w    = 0.415;
            t_deck = 2.0;
            t_fill = 3.25;
            t_e    = 3.25;
            b_e    = 99.0;
            h_0    = 10.0;
            a_o    = 22.0;
            A_sn   = 9.15;
            Q_n    = 16.46;

            AiscShapeFactory f = new AiscShapeFactory();

            section  = f.GetShape("W18X60") as ISectionI;
            F_y      = 50.0;
            f_cPrime = 4.0;
            N_studs  = 99;
            N_o      = 4.0;
            e        = 0.0;
            t_r      = 0.5;
            b_r      = 2.0;

            CompositeIBeamWebOpening o = new CompositeIBeamWebOpening(section, b_e, t_fill, t_deck, F_y, f_cPrime, N_studs, Q_n,
                                                                      N_o, a_o, h_0, e, t_r, b_r, Steel.AISC.DeckAtBeamCondition.Parallel, 4.5, 12.0);
            double phiV_n          = o.GetShearStrength();
            double refValue        = 95.57;
            double actualTolerance = EvaluateActualTolerance(phiV_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        //there are few shapes KodeStruct doesn't recognize. i.g. W8X10
        public ISection ToKodeStructCrossSection(sCrossSection sCs)
        {
            ISection         shape    = null;
            AiscShapeFactory shapeFac = new AiscShapeFactory();

            if (sCs.sectionType == eSectionType.AISC_I_BEAM)
            {
                shape = shapeFac.GetShape(sCs.shapeName);
            }
            else if (sCs.sectionType == eSectionType.HSS_REC)
            {
            }
            else if (sCs.sectionType == eSectionType.HSS_ROUND)
            {
            }
            else if (sCs.sectionType == eSectionType.RECTANGLAR)
            {
            }
            else if (sCs.sectionType == eSectionType.ROUND)
            {
            }
            else if (sCs.sectionType == eSectionType.SQUARE)
            {
            }
            return(shape);
        }
        private void SetExampleValuesSteel()
        {
            d   = 18.11;
            t_w = 0.39;
            //t_deck = 3.0;
            //t_fill = 2.5;
            t_e  = 2.5;
            b_e  = 120.0;
            h_0  = 11.0;
            a_o  = 20.0;
            A_sn = 9.15;
            Q_n  = 26.1;

            AiscShapeFactory f = new AiscShapeFactory();

            section = f.GetShape("W18X55") as ISectionI;
            F_y     = 50.0;
            //f_cPrime = 4.0;
            //N_studs = 14.0;
            //N_o = 2.0;
            e   = 0.0;
            t_r = 0.25;
            b_r = 0.65 / 0.25;
            V_u = 460;
            M_u = 3600;
        }
        public void ShapeFactoryReturnsValueForUnequalAngle()
        {
            AiscShapeFactory factory = new AiscShapeFactory();
            ISection         section = factory.GetShape("L3-1/2X3X1/4", Entities.ShapeTypeSteel.Angle);

            Assert.IsTrue(section != null);
        }
        internal CatalogSection(string ShapeId, string AngleOrientation = "LongLegVertical", string AngleRotation = "FlatLegTop")
        {
            AiscShapeFactory factory = new AiscShapeFactory();
            AngleOrientation ori     = new AngleOrientation();
            AngleRotation    rot     = new Kodestruct.Common.AngleRotation();

            ShapeId = ShapeId.ToUpper();

            AngleOrientation _AngleOrientation;
            bool             IsValidInputString = Enum.TryParse(AngleOrientation, true, out _AngleOrientation);

            if (IsValidInputString == false)
            {
                throw new Exception("Failed to convert string. Specifuy AngleOrientation. Please check input");
            }


            AngleRotation _AngleRotation;
            bool          IsValidInputRotation = Enum.TryParse(AngleRotation, true, out _AngleRotation);

            if (IsValidInputRotation == false)
            {
                throw new Exception("Failed to convert string. Errormessage. Please check input");
            }


            ISection section = factory.GetShape(ShapeId, _AngleOrientation, _AngleRotation);

            //PredefinedSectionI catI = section as PredefinedSectionI;
            //ISliceableSection secI = new shapes.SectionIRolled("", catI.d, catI.b_fTop, catI.t_f, catI.t_w, catI.k);
            //Section = secI;
            Section = section;
        }
Beispiel #11
0
        private void CreateBeam()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection      section = AiscShapeFactory.GetShape("C15X33.9", ShapeTypeSteel.Channel);
            SteelMaterial mat     = new SteelMaterial(36.0, 29000);

            beam = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top);
        }
        private void CreateBeam()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection      section = AiscShapeFactory.GetShape("HSS8X6X.500", ShapeTypeSteel.RectangularHSS);
            SteelMaterial mat     = new SteelMaterial(46.0, 29000);

            beam = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top);
        }
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0)
        {
            CompressionMemberFactory factory      = new CompressionMemberFactory();
            AiscShapeFactory         ShapeFactory = new AiscShapeFactory();
            ISection      section = ShapeFactory.GetShape("PIPE8SCH80");
            SteelMaterial mat     = new SteelMaterial(35.0, 29000);

            L_ez   = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section, mat, L_ex, L_ey, L_ez);
        }
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0, string Shape = "W14X82")
        {
            CompressionMemberFactory factory = new CompressionMemberFactory();
            AiscShapeFactory AiscShapeFactory = new AiscShapeFactory();
            ISection section = AiscShapeFactory.GetShape(Shape, ShapeTypeSteel.IShapeRolled);
            SteelMaterial mat = new SteelMaterial(50.0,29000);
            L_ez = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section,mat, L_ex, L_ey, L_ez);

        }
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0)
        {
            CompressionMemberFactory factory          = new CompressionMemberFactory();
            AiscShapeFactory         AiscShapeFactory = new AiscShapeFactory();
            ISection      section = AiscShapeFactory.GetShape("HSS8X6X.500", ShapeTypeSteel.RectangularHSS);
            SteelMaterial mat     = new SteelMaterial(46.0, 29000);

            L_ez   = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section, mat, L_ex, L_ey, L_ez);
        }
        public void PipeShapeBeam()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection r = AiscShapeFactory.GetShape("HSS2.5X.188");


            SteelMaterial     mat    = new SteelMaterial(35.0, 29000);
            ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.YAxis, FlexuralCompressionFiberPosition.Left);

            Assert.IsTrue(beam12 != null);
        }
        public void SectionRHSReturnsWeakAxisClone()
        {
            AiscShapeFactory factory      = new AiscShapeFactory();
            ISectionTube     section      = factory.GetShape("HSS12X6X.375") as ISectionTube;
            ISection         sectionClone = section.GetWeakAxisClone();
            double           I_x          = sectionClone.I_x;
            double           refI_x       = 72.9;
            //Manual gives 10.3 but actual area checked in Autocad is 10.42
            double actualTolerance = EvaluateActualTolerance(I_x, refI_x);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void FactoryReturnsChannel()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISectionChannel       r = new SectionChannel("", 12.0, 6, 0.4, 0.25);


            SteelMaterial     mat    = new SteelMaterial(50.0, 29000);
            ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top);

            Assert.IsTrue(true);
        }
        public void E1AReturnsAxialCapacity()
        {
            //AiscCatalogShape section = new AiscCatalogShape("W14X90", null);

            AiscShapeFactory AiscShapeFactory = new AiscShapeFactory();
            ISectionI        section          = (ISectionI)AiscShapeFactory.GetShape("W14X90", ShapeTypeSteel.IShapeRolled);
            ISteelMaterial   Material         = new SteelMaterial(65, 29000);
            ISteelSection    steelSection     = new SteelSectionI(section, Material);
            IShapeCompact    col   = new IShapeCompact(steelSection, true, 19 * 12, 19 * 12, 19 * 12);
            double           phiPn = col.GetFlexuralBucklingStrength().Value;

            Assert.True(phiPn == 903);
        }
Beispiel #20
0
        public void ShapeFactoryReturnsS_xForAngle()
        {
            AiscShapeFactory factory = new AiscShapeFactory();
            ISection         section = factory.GetShape("L3X3X3/8");

            double S_xTop = section.S_xTop;
            double S_xBot = section.S_xBot;

            Assert.IsTrue(section is ISectionAngle);
            double refValue = 0.825; //check

            double actualTolerance = EvaluateActualTolerance(S_xTop, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Beispiel #21
0
        public void DoublySymmetricIReturnsFlexuralLateralTorsionalBucklingStrengthInelasticW12()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection          section = AiscShapeFactory.GetShape("W12X26", ShapeTypeSteel.IShapeRolled);
            SteelMaterial     mat     = new SteelMaterial(50.0, 29000);
            ISteelBeamFlexure beam12  = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top);

            SteelLimitStateValue LTB =
                beam12.GetFlexuralLateralTorsionalBucklingStrength(1.0, 19 * 12, FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.NoLateralBracing);
            double phiM_n          = LTB.Value;
            double refValue        = 60 * 12; // from AISC Steel Manual Table 3-10
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.True(actualTolerance <= tolerance);
        }
Beispiel #22
0
        public void AngleReturnsFlexuralLTBStrengthL3X3()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection          section  = AiscShapeFactory.GetShape("L3X3X3/8", ShapeTypeSteel.Angle);
            SteelMaterial     mat      = new SteelMaterial(36.0, 29000);
            ISteelBeamFlexure thisBeam = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top);

            SteelLimitStateValue LTB =
                beam.GetFlexuralLateralTorsionalBucklingStrength(1.0, 4.5 * 12, FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.NoLateralBracing);
            double phiM_n          = LTB.Value;
            double refValue        = 88.9;
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.True(actualTolerance <= tolerance);
        }
Beispiel #23
0
        public void DoublySymmetricIReturnsFlexuralMinorAxisYieldingStrength()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection      section = AiscShapeFactory.GetShape("W18X35", ShapeTypeSteel.IShapeRolled);
            SteelMaterial mat     = new SteelMaterial(50.0, 29000);

            beam = factory.GetBeam(section, mat, null, MomentAxis.YAxis, FlexuralCompressionFiberPosition.Top);


            SteelLimitStateValue Y =
                beam.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = Y.Value;
            double refValue        = 0.9 * Math.Min(50.0 * 8.06, 1.6 * 50.0 * 5.12);
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        private CompositeBeamSection GetBeamForTests(double SumQ_n)
        {
            double Y_2      = 5;
            double f_cPrime = 4;
            double h_solid  = 3;
            double b_eff;
            double h_rib = 3;

            b_eff = SumQ_n / ((h_rib + h_solid - Y_2) * 2 * 0.85 * f_cPrime);           //Back calculate b_eff to get the round number from AISC manual
            double Y_2T = h_solid - (SumQ_n / (0.85 * f_cPrime * b_eff) / 2.0) + h_rib; //test

            AiscShapeFactory     factory = new AiscShapeFactory();
            ISection             section = factory.GetShape("W18X35", ShapeTypeSteel.IShapeRolled);
            PredefinedSectionI   catI    = section as PredefinedSectionI;
            SectionIRolled       secI    = new SectionIRolled("", catI.d, catI.b_fTop, catI.t_f, catI.t_w, catI.k);
            CompositeBeamSection cs      = new CompositeBeamSection(secI, b_eff, h_solid, h_rib, 50.0, f_cPrime);

            return(cs);
        }
        public void IShapeReturnsYieldStrength()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection r = AiscShapeFactory.GetShape("W18X35");


            SteelMaterial     mat    = new SteelMaterial(50.0, 29000);
            ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top);

            SteelLimitStateValue Y =
                beam12.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = Y.Value;
            double refValue        = 249 * 12; // from AISC Steel Manual Table 3-2
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);


            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void DoublySymmetricIReturnsLateralTorsionalStrength()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection r = new  SectionI("", 12.2, 6.49, 0.38, 0.23);


            SteelMaterial     mat    = new SteelMaterial(50.0, 29000);
            ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top);

            SteelLimitStateValue LTB =
                beam12.GetFlexuralLateralTorsionalBucklingStrength(1.0, 19 * 12, FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.NoLateralBracing);
            double phiM_n          = LTB.Value;
            double refValue        = 60 * 12; // from AISC Steel Manual Table 3-10
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);


            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Beispiel #27
0
        public void IShapeReturnsWeakAxisYieldStrength()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();
            ISection r = AiscShapeFactory.GetShape("W18X35");


            SteelMaterial     mat    = new SteelMaterial(50.0, 29000);
            ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.YAxis, FlexuralCompressionFiberPosition.Left);

            SteelLimitStateValue Y =
                beam12.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = Y.Value;
            double refValue        = 0.9 * 8.06 * 50; // phi*Z_y*Fy
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);


            Assert.True(actualTolerance <= tolerance);
        }
Beispiel #28
0
        public static Dictionary <string, object> EffectiveFlangeForce(string ShapeId, double F_y, double g, double P, double M_x, double M_y, string Code = "AISC360-10")
        {
            //Default values
            double           f_f = 0;
            AiscShapeFactory AiscShapeFactory = new AiscShapeFactory();
            ISection         section          = AiscShapeFactory.GetShape(ShapeId, ShapeTypeSteel.IShapeRolled);

            //Calculation logic:
            if (section is PredefinedSectionI)
            {
                ColumnFlangeSplice sp = new ColumnFlangeSplice(section as PredefinedSectionI, F_y, g);
                f_f = sp.GetEffectiveFlangeForce(P, M_x, M_y);
            }

            return(new Dictionary <string, object>
            {
                { "f_f", f_f }
            });
        }
        public void TubeReturnsWeakAxisYieldStrength()
        {
            FlexuralMemberFactory factory          = new FlexuralMemberFactory();
            AiscShapeFactory      AiscShapeFactory = new AiscShapeFactory();

            ISection r = AiscShapeFactory.GetShape("HSS8X3X.375");


            SteelMaterial     mat    = new SteelMaterial(46.0, 29000);
            ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.YAxis, FlexuralCompressionFiberPosition.Top);

            SteelLimitStateValue Y =
                beam12.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = Y.Value;
            double refValue        = 326.23;
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);


            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Beispiel #30
0
        //4.4 EXAMPLE 2: STEEL BEAM WITH
        //UNREINFORCED OPENING
        private void SetExample2Values()
        {
            A_s      = 16.2;
            d        = 18.11;
            t_w      = 0.39;
            h_0      = 11.00;
            a_o      = 20.0;
            s_b      = 3.555;
            s_t      = 3.55;
            DeltaA_s = 4.29;
            A_sn     = 11.91;

            AiscShapeFactory f = new AiscShapeFactory();

            section  = f.GetShape("W18X55") as ISectionI;
            F_y      = 50.0;
            f_cPrime = 3.0;
            e        = 0.0;
            t_r      = 0.375;
            b_r      = 1.75;
        }