Esempio n. 1
0
        public static Dictionary <string, object> SeismicFundamentalPeriodGeneralMethod(double h_n, string SeismicSystemTypeGeneralProcedure, string Code = "ASCE7-10")
        {
            //Default values
            double T_a = 0;


            //Calculation logic:
            CalcLog log = new CalcLog();

            SeismicSystemTypeForApproximateAnalysis SeismicSystemType;
            bool IsValidSystemType = Enum.TryParse(SeismicSystemTypeGeneralProcedure, out SeismicSystemType);

            if (IsValidSystemType == false)
            {
                throw new Exception("Lateral system not recognized");
            }

            Kodestruct.Loads.ASCE.ASCE7_10.SeismicLoads.Building b = new Kodestruct.Loads.ASCE.ASCE7_10.SeismicLoads.Building(null,
                                                                                                                              Kodestruct.Loads.ASCE7.Entities.SeismicDesignCategory.None, log);
            T_a = b.GetApproximatePeriodGeneral(h_n, SeismicSystemType);


            return(new Dictionary <string, object>
            {
                { "T_a", T_a }
            });
        }
        public static Dictionary <string, object> SeismicFundamentalPeriodUpperLimitCoefficient(double S_D1, string Code = "ASCE7-10")
        {
            //Default values
            double C_u = 0;


            //Calculation logic:

            CalcLog log = new CalcLog();

            Kodestruct.Loads.ASCE.ASCE7_10.SeismicLoads.Building building = new Kodestruct.Loads.ASCE.ASCE7_10.SeismicLoads.Building(null, log);
            C_u = building.GetCoefficientForUpperBoundOnCalculatedPeriod(S_D1);

            return(new Dictionary <string, object>
            {
                { "C_u", C_u }
            });
        }
        public static Dictionary <string, object> BuildingFundamentalPeriodForSeismicLoads(double C_u, double T_a, double T_calc, string Code = "ASCE7-10")
        {
            //Default values
            double T = 0;


            //Calculation logic:

            CalcLog log = new CalcLog();

            Kodestruct.Loads.ASCE.ASCE7_10.SeismicLoads.Building building = new Kodestruct.Loads.ASCE.ASCE7_10.SeismicLoads.Building(null, log);
            double Tmax = building.GetMaximumPeriod(T_a, C_u);

            T = building.GetFundamentalPeriod(T_calc, Tmax);

            return(new Dictionary <string, object>
            {
                { "T", T }
            });
        }