FlatUseFactor(double b, double t, string WoodCommercialGrade,
                      string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015")
        {
            //Default values

            double C_fu_Fb = 0.0;
            double C_fu_Ft = 0.0;
            double C_fu_Fv = 0.0;
            double C_fu_Fc = 0.0;
            double C_fu_E  = 0.0;

            //Calculation logic:


            CommercialGrade comGr;
            bool            IsValidComGrString = Enum.TryParse(WoodCommercialGrade, true, out comGr);

            if (IsValidComGrString == false)
            {
                throw new Exception("Failed to convert string. Invalid Id for wood commercial grade. Please check input");
            }



            if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber"))
            {
                DimensionalLumber m          = new DimensionalLumber();
                string            memberType = WoodMemberType.TrimStart("Sawn".ToCharArray());

                SawnLumberType sawnLumberType;
                bool           IsValidSawnLumberTypeString = Enum.TryParse(memberType, true, out sawnLumberType);
                if (IsValidSawnLumberTypeString == false)
                {
                    throw new Exception("Failed to convert string. Check string input for sawn lumber type. Please check input");
                }

                C_fu_Fb = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Kodestruct.Wood.NDS.Entities.ReferenceDesignValueType.Bending);
                C_fu_Ft = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Kodestruct.Wood.NDS.Entities.ReferenceDesignValueType.TensionParallelToGrain);
                C_fu_Fv = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Kodestruct.Wood.NDS.Entities.ReferenceDesignValueType.ShearParallelToGrain);
                C_fu_Fc = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Kodestruct.Wood.NDS.Entities.ReferenceDesignValueType.CompresionParallelToGrain);
                C_fu_E  = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Kodestruct.Wood.NDS.Entities.ReferenceDesignValueType.ModulusOfElasticity);
            }
            else if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Timber"))
            {
                C_fu_Fb = 1.0;
                C_fu_Ft = 1.0;
                C_fu_Fv = 1.0;
                C_fu_Fc = 1.0;
                C_fu_E  = 1.0;
            }
            else if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("BeamOrStringer"))
            {
                throw new Exception("Wood member type not supported.");
            }
            else
            {
                throw new Exception("Wood member type not supported.");
            }

            return(new Dictionary <string, object>
            {
                { "C_fu_Fb", C_fu_Fb },
                { "C_fu_Ft", C_fu_Ft },
                { "C_fu_Fv", C_fu_Fv },
                { "C_fu_Fc", C_fu_Fc },
                { "C_fu_E", C_fu_E },
            });
        }
Exemplo n.º 2
0
            FlatUseFactor(double b, double t, string WoodCommercialGrade,
             string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015")
        {
            //Default values
 
            double C_fu_Fb  =0.0;
            double C_fu_Ft  =0.0;
            double C_fu_Fv  =0.0;
            double C_fu_Fc  =0.0;
            double C_fu_E = 0.0;

            //Calculation logic:

            
            CommercialGrade comGr;
            bool IsValidComGrString = Enum.TryParse(WoodCommercialGrade, true, out comGr);
            if (IsValidComGrString == false)
            {
                throw new Exception("Failed to convert string. Invalid Id for wood commercial grade. Please check input");
            }




           if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber"))
            {
                DimensionalLumber m = new DimensionalLumber();
                string memberType = WoodMemberType.TrimStart("Sawn".ToCharArray());

                SawnLumberType sawnLumberType;
                bool IsValidSawnLumberTypeString = Enum.TryParse(memberType, true, out sawnLumberType);
                if (IsValidSawnLumberTypeString == false)
                {
                    throw new Exception("Failed to convert string. Check string input for sawn lumber type. Please check input");
                }

                C_fu_Fb = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Wosad.Wood.NDS.Entities.ReferenceDesignValueType.Bending);
                C_fu_Ft = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Wosad.Wood.NDS.Entities.ReferenceDesignValueType.TensionParallelToGrain);
                C_fu_Fv = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Wosad.Wood.NDS.Entities.ReferenceDesignValueType.ShearParallelToGrain);
                C_fu_Fc = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Wosad.Wood.NDS.Entities.ReferenceDesignValueType.CompresionParallelToGrain);
                C_fu_E = m.GetFlatUseFactor(b, t, sawnLumberType, comGr, Wosad.Wood.NDS.Entities.ReferenceDesignValueType.ModulusOfElasticity);


            }
           else if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Timber"))
           {

               C_fu_Fb =1.0;
               C_fu_Ft =1.0;
               C_fu_Fv =1.0;
               C_fu_Fc =1.0;
               C_fu_E = 1.0;
           }
           else if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("BeamOrStringer"))
           {
               throw new Exception("Wood member type not supported.");
           }
           else
           {
               throw new Exception("Wood member type not supported.");
           }

            return new Dictionary<string, object>
            {
                { "C_fu_Fb", C_fu_Fb },
                { "C_fu_Ft", C_fu_Ft },
                { "C_fu_Fv", C_fu_Fv },
                { "C_fu_Fc", C_fu_Fc },
                { "C_fu_E", C_fu_E	 },
            };
        }