public static Dictionary<string, object> BoltGroupShearAndTensionAreas(string ShearAreaCaseId,double N_BoltRowParallel,double N_BoltRowPerpendicular,
            double p_parallel,double p_perpendicular,double d_hole, double t_p,
            double l_edgeParallel, double l_edgePerpendicular, string Code = "AISC360-10")
        {
            //Default values
            double A_gv = 0;
            double A_nv = 0;
            double A_nt = 0;


            //Calculation logic:
            ShearAreaCase shearCase = ShearCaseParse(ShearAreaCaseId);
            ShearAreaCalculator c = new ShearAreaCalculator(shearCase, N_BoltRowParallel, N_BoltRowPerpendicular, 
                p_parallel, p_perpendicular, d_hole, t_p, l_edgeParallel, l_edgePerpendicular);
            A_gv = c.GetGrossAreaShear();
            A_nv = c.GetNetAreaShear();
            A_nt = c.GetNetAreaTension();

            return new Dictionary<string, object>
            {
                { "A_gv", A_gv }
                ,{ "A_nv", A_nv }
                ,{ "A_nt", A_nt }
 
            };
        }
 private ShearAreaCalculator GetShearAreaCalc()
 {
     double d_hole = 7.0/8.0+2*(1.0/16.0);
     double t =2*1.0;
     ShearAreaCalculator c = new ShearAreaCalculator(Steel.AISC.ShearAreaCase.LBlock, 7, 2, 3, 3, d_hole, t, 1.5, 2.0);
     return c;
 }