Ejemplo n.º 1
0
        public void ValidValues_Construct_Success()
        {
            var bottom = new Line(new Vector3(0, 0, 0), new Vector3(20, 0, 0));
            var top    = new Line(new Vector3(20, 10, 30), new Vector3(0, 0, 30));
            var grid   = new Grid(bottom, top, 5, 5);

            var profile = new WideFlangeProfile("test", 0.5, 0.5, 0.1, 0.1, VerticalAlignment.Center);

            Assert.Equal(25, grid.Cells().Length);
        }
Ejemplo n.º 2
0
        public void BeamSystem()
        {
            var profile = new WideFlangeProfile("test", 1.0, 2.0, 0.1, 0.1);
            var a       = new Vector3(0, 0, 0);
            var b       = new Vector3(20, 0, 0);
            var d       = new Vector3(20, 20, 10);
            var c       = new Vector3(0, 20, 0);
            var polygon = new Polygon(new[] { a, b, c, d });
            var system  = new BeamSystem(5, profile, new Line(a, b), new Line(c, d), BuiltInMaterials.Steel);

            Assert.True(system.Beams.Count() == 5);
        }
Ejemplo n.º 3
0
        public void Example()
        {
            var profile = new WideFlangeProfile("test", 1.0, 2.0, 0.1, 0.1);
            var a       = new Vector3(0, 0, 0);
            var b       = new Vector3(20, 0, 0);
            var d       = new Vector3(20, 20, 10);
            var c       = new Vector3(0, 20, 0);
            var polygon = new Polygon(new[] { a, b, c, d });
            var system  = new BeamSystem(5, profile, new Line(a, b), new Line(c, d), BuiltInMaterials.Steel);
            var model   = new Model();

            model.AddElements(system.Beams);
            model.SaveGlb("beam_system.glb");
        }
Ejemplo n.º 4
0
        public void BeamSystem()
        {
            this.Name = "BeamSystem";
            var profile = new WideFlangeProfile("test", 1.0, 2.0, 0.1, 0.1);
            var a       = new Vector3(0, 0, 0);
            var b       = new Vector3(20, 0, 0);
            var d       = new Vector3(20, 20, 10);
            var c       = new Vector3(0, 20, 0);
            var polygon = new Polygon(new[] { a, b, c, d });
            var beam    = new Beam(new Line(a, b), profile);
            var system  = new BeamSystem(5, profile, new Line(a, b), new Line(c, d), BuiltInMaterials.Steel);

            Assert.True(system.Elements.Count() == 5);
            this.Model.AddElements(system.Elements);
            this.Model.AddElement(beam);
        }
Ejemplo n.º 5
0
 public StructuralFramingTests()
 {
     _testProfile = _wideFlangeFactory.GetProfileByType(WideFlangeProfileType.W10x100);
 }
Ejemplo n.º 6
0
        public void MassBuilding()
        {
            var model = new Model();
            var a     = new Vector3();
            var b     = new Vector3(30, 10);
            var c     = new Vector3(20, 50);
            var d     = new Vector3(-10, 5);

            var buildingHeight = 30;

            var profile = new Polygon(new[] { a, b, c, d });
            var mass    = new Mass(profile, 0, buildingHeight);

            var elevations = new List <double>();

            for (var i = 0.0; i <= buildingHeight; i += 4.0)
            {
                elevations.Add(i);
            }

            var faces = mass.Faces();

            foreach (var f in faces)
            {
                var g = new Grid(f, 14, elevations.Count - 1);
                foreach (var cell in g.Cells())
                {
                    var panel    = new Panel(cell, BuiltInMaterials.Glass);
                    var edges    = panel.Edges();
                    var bProfile = new WideFlangeProfile("test_beam");
                    var beam1    = new Beam(edges[0], bProfile, BuiltInMaterials.Steel, panel.Normal());
                    var beam2    = new Beam(edges[2], bProfile, BuiltInMaterials.Steel, panel.Normal());
                    var beam3    = new Beam(edges[1], bProfile, BuiltInMaterials.Steel, panel.Normal());
                    model.AddElements(new Element[] { panel, beam1, beam2, beam3 });
                }
            }

            var floorType = new FloorType("test", 0.2);
            var floors    = mass.Floors(elevations, floorType, BuiltInMaterials.Concrete);

            model.AddElements(floors);

            var shaft         = Polygon.Rectangle(new Vector3(10, 10), 5, 5);
            var shaftWallType = new WallType("ShaftWall", 0.1);
            var walls         = shaft.Segments().Select(l => {
                return(new Wall(l, shaftWallType, buildingHeight, null, BuiltInMaterials.Concrete));
            });

            model.AddElements(walls);

            var offset  = profile.Offset(-1.5).ElementAt(0);
            var columns = offset.Segments().SelectMany(l => {
                var ts          = new [] { 0.5, 1.0 };
                var sideColumns = new List <Column>();
                foreach (var t in ts)
                {
                    sideColumns.Add(new Column(l.PointAt(t), buildingHeight, Polygon.Rectangle(width: 1.0, height: 1.0), BuiltInMaterials.Concrete));
                }
                return(sideColumns);
            });

            model.AddElements(columns);

            model.SaveGlb("massBuilding.glb");
        }