public static Dictionary<string, object> WindGustEffectFactor(double B,double h,double L,double beta,double n_1,double V,
            string WindExposureCategory, string WindStructureDynamicResponseType = "Flexible", string Code = "ASCE7-10")
        {
            //Default values
            double G = 0;

            //Calculation logic:

            WindExposureCategory Exposure;

            bool IsValidStringExposure = Enum.TryParse(WindExposureCategory, true, out Exposure);
            if (IsValidStringExposure == false)
            {
                throw new Exception("Exposure category is not recognized. Check input string.");
            }

            WindStructureDynamicResponseType response;
            bool IsValidStringResponse = Enum.TryParse(WindStructureDynamicResponseType, true, out response);
            if (IsValidStringResponse == false)
            {
                throw new Exception("Dynamic response type is not recognized. Specify Rigid or Flexible. Check input string.");
            }

            CalcLog Log = new CalcLog();
            WindStructure structure = new WindStructure(Log);
            G = structure.GetGustFacor(response,B,h,L,beta,n_1,V,Exposure);

            return new Dictionary<string, object>
            {
                { "G", G }
 
            };
        }
        public static Dictionary<string, object> WindDirectionalityFactor(string WindStructureDescriptionForExposure = "MWFRS", string Code = "ASCE7-10")
        {
            //Default values
            double K_d = 0;


            //Calculation logic:
            WindStructure structure = new WindStructure(new CalcLog());
            K_d = structure.GetKd(WindStructureDescriptionForExposure);

            return new Dictionary<string, object>
            {
                { "K_d", K_d }
 
            };
        }
        public static Dictionary<string, object> WindExposureConstants(string WindExposureCategory, string Code = "ASCE7-10")
        {
            //Default values
            double alpha = 0;
            double z_g = 0;
            double alpha_ = 0;
            double b_ = 0;
            double c = 0;
            double l = 0;
            double epsilon_ = 0;
            double z_min = 0;

            WindExposureCategory Exposure;
            //Calculation logic:
            bool IsValidStringExposure = Enum.TryParse(WindExposureCategory, true, out Exposure);
            if (IsValidStringExposure == false)
            {
                throw new Exception("Exposure category is not recognized. Check input string.");
            }

            CalcLog log = new CalcLog();
            WindStructure structure = new WindStructure(new CalcLog());
            //structure.GetTerrainExposureConstant(TerrainExposureConstant.alpha, Exposure);
           alpha =      structure.GetTerrainExposureConstant(TerrainExposureConstant.alpha , Exposure);
           z_g =        structure.GetTerrainExposureConstant(TerrainExposureConstant.zg , Exposure);
           alpha_ =     structure.GetTerrainExposureConstant(TerrainExposureConstant.alpha_ob , Exposure);
           b_ =         structure.GetTerrainExposureConstant(TerrainExposureConstant.b_ob , Exposure);
           c =          structure.GetTerrainExposureConstant(TerrainExposureConstant.c , Exposure);
           l =          structure.GetTerrainExposureConstant(TerrainExposureConstant.l , Exposure);
           epsilon_ =   structure.GetTerrainExposureConstant(TerrainExposureConstant.epsilon_ob , Exposure);
           z_min =      structure.GetTerrainExposureConstant(TerrainExposureConstant.zmin , Exposure);

            return new Dictionary<string, object>
            {
                { "alpha", alpha }
                ,{ "z_g", z_g }
                ,{ "alpha_", alpha_ }
                ,{ "b_", b_ }
                ,{ "c", c }
                ,{ "l", l }
                ,{ "epsilon_", epsilon_ }
                ,{ "z_min", z_min }
 
            };
        }