public static Dictionary <string, object> TemperatureFactor(double Temperature, string ServiceMoistureCondition = "Dry",
                                                                    string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015")
        {
            //Default values
            double C_t_Fb = 1.0;
            double C_t_Ft = 1.0;
            double C_t_Fv = 1.0;
            double C_t_Fc = 1.0;
            double C_t_E  = 1.0;

            //Calculation logic:


            ww.ServiceMoistureConditions moistureCondition;
            bool IsValidInputString = Enum.TryParse(ServiceMoistureCondition, true, out moistureCondition);

            if (IsValidInputString == false)
            {
                throw new Exception("Failed to convert string. Moisture condition string is invalid. Please check input");
            }


            if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber"))
            {
                DimensionalLumber m = new DimensionalLumber();
                C_t_Fb = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.Bending, Temperature, moistureCondition);
                C_t_Ft = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.TensionParallelToGrain, Temperature, moistureCondition);
                C_t_Fv = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.ShearParallelToGrain, Temperature, moistureCondition);
                C_t_Fc = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.CompresionParallelToGrain, Temperature, moistureCondition);
                C_t_E  = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.ModulusOfElasticity, Temperature, moistureCondition);
            }
            else if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Timber"))
            {
                Timber t = new Timber();
                C_t_Fb = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.Bending, Temperature, moistureCondition);
                C_t_Ft = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.TensionParallelToGrain, Temperature, moistureCondition);
                C_t_Fv = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.ShearParallelToGrain, Temperature, moistureCondition);
                C_t_Fc = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.CompresionParallelToGrain, Temperature, moistureCondition);
                C_t_E  = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.ModulusOfElasticity, Temperature, moistureCondition);
            }
            else
            {
                throw new Exception("Wood member type not supported.");
            }

            return(new Dictionary <string, object>
            {
                { "C_t_Fb", C_t_Fb },
                { "C_t_Ft", C_t_Ft },
                { "C_t_Fv", C_t_Fv },
                { "C_t_Fc", C_t_Fc },
                { "C_t_E", C_t_E }
            });
        }
Exemplo n.º 2
0
        public static Dictionary<string, object> TemperatureFactor(double Temperature, string ServiceMoistureCondition="Dry",
             string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015")
        {
            //Default values
            double C_t_Fb =1.0;
            double C_t_Ft =1.0;
            double C_t_Fv =1.0;
            double C_t_Fc =1.0;
            double C_t_E = 1.0;

            //Calculation logic:

            
            ww.ServiceMoistureConditions moistureCondition;
            bool IsValidInputString = Enum.TryParse(ServiceMoistureCondition, true, out moistureCondition);
            if (IsValidInputString == false)
            {
                throw new Exception("Failed to convert string. Moisture condition string is invalid. Please check input");
            }


            if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber"))
            {
                DimensionalLumber m = new DimensionalLumber();
                C_t_Fb = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.Bending, Temperature, moistureCondition);
                C_t_Ft = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.TensionParallelToGrain, Temperature, moistureCondition);
                C_t_Fv = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.ShearParallelToGrain, Temperature, moistureCondition);
                C_t_Fc = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.CompresionParallelToGrain, Temperature, moistureCondition);
                C_t_E = m.GetTemperatureFactorCt(ww.ReferenceDesignValueType.ModulusOfElasticity, Temperature, moistureCondition);
            }
            else if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Timber"))
            {
                Timber t = new Timber();
                C_t_Fb = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.Bending, Temperature, moistureCondition);
                C_t_Ft = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.TensionParallelToGrain, Temperature, moistureCondition);
                C_t_Fv = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.ShearParallelToGrain, Temperature, moistureCondition);
                C_t_Fc = t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.CompresionParallelToGrain, Temperature, moistureCondition);
                C_t_E =  t.GetTemperatureFactorCt(ww.ReferenceDesignValueType.ModulusOfElasticity, Temperature, moistureCondition);
            }
            else
            {
                throw new Exception("Wood member type not supported.");
            }

            return new Dictionary<string, object>
            {
                { "C_t_Fb", C_t_Fb },
                { "C_t_Ft", C_t_Ft },
                { "C_t_Fv", C_t_Fv },
                { "C_t_Fc", C_t_Fc },
                { "C_t_E",  C_t_E  } 
            };
        }