public void Analyze_Breyer6thEd_16_11_Succeeds()
        {
            var sB = new StringBuilder();

            var level = new BuildingLevel("Level 2", 100);

            var lateralWalls = new List <AnalyticalWallLateral>();

            lateralWalls.Add(new AnalyticalWallLateral("Wall A", new Point2D(0, 0), new Point2D(0, 240), level));

            lateralWalls.Add(new AnalyticalWallLateral("Wall B", new Point2D(360, 0), new Point2D(360, 240), level));

            lateralWalls.Add(new AnalyticalWallLateral("Wall C-1", new Point2D(0, 0), new Point2D(60, 0), level));
            lateralWalls.Add(new AnalyticalWallLateral("Wall C-2", new Point2D(300, 0), new Point2D(360, 0), level));

            lateralWalls.Add(new AnalyticalWallLateral("Wall D", new Point2D(0, 240), new Point2D(360, 240), level));

            var deck = new OneWayDeck
            {
                Level    = level,
                Boundary = new Polygon2D(new List <Point2D>
                {
                    new Point2D(0, 0),
                    new Point2D(0, 240),
                    new Point2D(360, 240),
                    new Point2D(360, 0)
                }),
                WeightPerArea = new Stress(40, StressUnit.psf)
            };

            var lateralLevel = new BuildingLevelLateral2(deck);

            var forces = new List <LateralLevelForce>
            {
                new LateralLevelForce {
                    DirectX = new Force(-6000, ForceUnit.Pound), LoadPattern = LoadPattern.Seismic_West, CenterOfForce = new Point2D(180, 120)
                },
                new LateralLevelForce {
                    AccidentalT = new Moment(6, MomentUnit.KipFoot), LoadPattern = LoadPattern.SeismicTorsion_XLoading, CenterOfForce = new Point2D(180, 120)
                }
            };

            var loadCases = new List <LoadCase>
            {
                CommonResources.ASCE7LoadCases["-X - TX"],
            };

            var analysis = new RigidAnalysis(lateralLevel, lateralWalls, forces, loadCases, 1);

            analysis.Analyze();

            var table = RigidAnalysisTabularReport.GenerateShearWallForceStiffnessTable(analysis);

            sB.Append(table.PrintToMarkdown());
        }
Exemplo n.º 2
0
        public void SingleStory_E2E_Succeeds()
        {
            var level = new BuildingLevel("Level 02", 100);

            var serializedModel = new SerializedModel
            {
                BearingWalls = new List <BearingWall>
                {
                    new BearingWall
                    {
                        TopLevel    = level,
                        EndI        = new Point3D(0, 0, 100),
                        EndJ        = new Point3D(0, 240, 100),
                        UniqueId    = "Wall A",
                        HasOpening  = false,
                        IsShearWall = true
                    },
                    new BearingWall
                    {
                        TopLevel    = level,
                        EndI        = new Point3D(360, 0, 100),
                        EndJ        = new Point3D(360, 240, 100),
                        UniqueId    = "Wall B",
                        HasOpening  = false,
                        IsShearWall = true
                    },
                    new BearingWall
                    {
                        TopLevel    = level,
                        EndI        = new Point3D(0, 0, 100),
                        EndJ        = new Point3D(60, 0, 100),
                        UniqueId    = "Wall C-1",
                        HasOpening  = false,
                        IsShearWall = true
                    },
                    new BearingWall
                    {
                        TopLevel    = level,
                        EndI        = new Point3D(300, 0, 100),
                        EndJ        = new Point3D(360, 0, 100),
                        UniqueId    = "Wall C-2",
                        HasOpening  = false,
                        IsShearWall = true
                    },
                    new BearingWall
                    {
                        TopLevel    = level,
                        EndI        = new Point3D(0, 240, 100),
                        EndJ        = new Point3D(360, 240, 100),
                        UniqueId    = "Wall D",
                        HasOpening  = false,
                        IsShearWall = true
                    }
                },
                OneWayDecks = new List <OneWayDeck>
                {
                    new OneWayDeck()
                    {
                        Level    = level,
                        Boundary = new Polygon2D(new List <Point2D>
                        {
                            new Point2D(0, 0),
                            new Point2D(0, 240),
                            new Point2D(360, 240),
                            new Point2D(360, 0)
                        }),
                        WeightPerArea = new Stress(40, StressUnit.psf)
                    }
                },
                ModelSettings = new ModelSettings
                {
                    BuildingHeight = level.Elevation
                },
                SeismicParameters = new SeismicParameters
                {
                    BuildingParameters = new BuildingParameters()
                    {
                        ImportanceFactor = 1.0,
                        SeismicBaseLevel = new BuildingLevel("Level 01", 0)
                    },
                    Seismicity       = Seismicity.High,
                    SystemParameters = new SystemParameters
                    {
                        Cd    = 4,
                        R     = 6.5,
                        Omega = 3,
                        Ct    = 0.02,
                        X     = 0.75
                    }
                },
                RandomizedBuilding = Randomize.Random()
            };

            var manager = new AnalysisManager(serializedModel);

            var wallCosts = manager.Run();

            var table = RigidAnalysisTabularReport.GenerateShearWallForceStiffnessTable(manager.RigidAnalyses[level]);

            var output = table.PrintToMarkdown();

            string executingPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string fpath         = Path.Combine(executingPath, @"DataOutput\testData.csv");

            wallCosts.WriteToCSV(fpath);
        }