/// <summary>
        /// Effective length for gusset from AISC Design Guide 29
        /// </summary>
        /// <param name="configuration">Type of gusset plate configuration for calculation of effective length</param>
        /// <param name="l_1">Gusset plate distance from beam to nearest row of bolts</param>
        /// <param name="l_2">Gusset plate distance from column to nearest row of bolts</param>
        /// <returns></returns>
        public double GetGussetPlateEffectiveCompressionLength(GussetPlateConfiguration configuration, double l_1, double l_2)
        {
            switch (configuration)
            {
            case GussetPlateConfiguration.CompactCorner:
                return(0);

                break;

            case GussetPlateConfiguration.NoncompactCorner:
                return(1.0 * (l_1 + l_2) / 2.0);

                break;

            case GussetPlateConfiguration.ExtendedCorner:
                return(0.6 * l_1);

                break;

            case GussetPlateConfiguration.SingleBrace:
                return(0.7 * l_1);

                break;

            case GussetPlateConfiguration.Chevron:
                return(0.65 * l_1);

                break;

            default:
                return(l_1 * 1.0);

                break;
            }
        }
        public static Dictionary <string, object> GussetPlateEffectiveCompressionLength(string GussetPlateConfigurationId, double l_1, double l_2, bool IsGussetCompactConfiguration = false, string Code = "AISC360-10")
        {
            //Default values
            double KL_gusset = 0;


            //Calculation logic:
            AffectedElement          el   = new AffectedElement();
            GussetPlateConfiguration conf = ParseGussetConfiguration(GussetPlateConfigurationId, IsGussetCompactConfiguration);

            KL_gusset = el.GetGussetPlateEffectiveCompressionLength(conf, l_1, l_2);

            return(new Dictionary <string, object>
            {
                { "KL_gusset", KL_gusset }
            });
        }
 /// <summary>
 /// Effective length for gusset from AISC Design Guide 29 
 /// </summary>
 /// <param name="configuration">Type of gusset plate configuration for calculation of effective length</param>
 /// <param name="l_1">Gusset plate distance from beam to nearest row of bolts</param>
 /// <param name="l_2">Gusset plate distance from column to nearest row of bolts</param>
 /// <returns></returns>
 public double GetGussetPlateEffectiveCompressionLength(GussetPlateConfiguration configuration, double l_1, double l_2)
 {
     switch (configuration)
     {
         case GussetPlateConfiguration.CompactCorner:
             return 0;
             break;
         case GussetPlateConfiguration.NoncompactCorner:
             return 1.0 * (l_1 + l_2) / 2.0;
             break;
         case GussetPlateConfiguration.ExtendedCorner:
             return 0.6 * l_1;
             break;
         case GussetPlateConfiguration.SingleBrace:
             return 0.7 * l_1;
             break;
         case GussetPlateConfiguration.Chevron:
             return 0.65 * l_1;
             break;
         default:
             return l_1 * 1.0;
             break;
     }
 }