Esempio n. 1
0
 public HndzFloor(Double thickness, HndzProfile profile, HndzStorey storey = null, Double baseOffset = 0) :
     this(null, profile, storey, baseOffset)
 {
     FloorThickness = thickness;
     ExtrusionLine  = new HndzLine(new Point3d(profile.Centroid.X, profile.Centroid.Y, storey.Elevation - FloorThickness + baseOffset),
                                   new Point3d(profile.Centroid.X, profile.Centroid.Y, storey.Elevation + baseOffset));
 }
Esempio n. 2
0
 public HndzStairLanding(Double thickness, HndzProfile profile, HndzStorey storey, Double finishFloorThickness, Double baseOffset = 0) :
     this(null, profile, storey, baseOffset)
 {
     SlabThickness = thickness;
     ExtrusionLine = new HndzLine(new Point3d(profile.Centroid.X, profile.Centroid.Y, storey.Elevation -
                                              SlabThickness - finishFloorThickness + baseOffset),
                                  new Point3d(profile.Centroid.X, profile.Centroid.Y, storey.Elevation - finishFloorThickness + baseOffset));
 }
 protected HndzExtrudedElement(string name, string description, HndzLine extrusionLine, HndzStorey storey, double baseOffset,
                               HndzProductDiscipline discipline) :
     base(name, description, storey, baseOffset, discipline)
 {
     LocalId = ++Id;
     //ExtrusionDirection = dir;
     //ExtrusionLength = extrusionLength;
     ExtrusionLine = extrusionLine;
 }
Esempio n. 4
0
        public HndzCurtainWallStandardCase(String name, String description, HndzStorey storey, Double baseOffset = 0,
                                           Line baseLine = default(Line), Double unconnectedHeight = 0, Double wallThickness = 0, ICollection <HndzWallOpening> wallOpenings = null) :
            base(name, description, unconnectedHeight, wallThickness, storey, baseOffset, wallOpenings)
        {
            BaseLine = baseLine;
            Point3d StartPoint = new Point3d(BaseLine.PointAt(.5).X, BaseLine.PointAt(.5).Y, BaseOffset);
            Point3d EndPoint   = new Point3d(StartPoint.X, StartPoint.Y, unconnectedHeight + BaseOffset);

            ExtrusionLine = new HndzLine(new Line(StartPoint, EndPoint));
        }
Esempio n. 5
0
 protected HndzWall(string name, string description, HndzLine extrusionLine, Double wallThickness,
                    HndzStorey storey = null, double baseOffset = 0, ICollection <HndzWallOpening> wallOpenings = null) :
     base(name, description, extrusionLine, storey, baseOffset)
 {
     if (ExtrusionLine != null)
     {
         UnconnectedHeight = ExtrusionLine.RhinoLine.Length;
     }
     WallThickness = wallThickness;
 }
        /// <summary>
        /// Constructor takes extrusion line and base storey. To use this the building must have a storey above the current storey
        /// </summary>
        /// <param name="name">Beam Name</param>
        /// <param name="description">Beam Description</param>
        /// <param name="extrusionLine">line represents start and end point of the beam and its direction</param>
        /// <param name="storey">Base Storey</param>
        /// <param name="baseOffset">Base Offset from base storey Elevation value</param>
        /// <param name="discipline">Discipline as Enum e.g. Arch, Structure ... etc</param>
        /// <param name="profile">Beam Profile</param>
        public HndzBeamStandardCase(String name, String description, HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null, Double baseOffset = 0) :
            base(name, description, extrusionLine, profile, storey, baseOffset)
        {
            //to use this, the building must have a storey above the current storey
            double  beamTopElevation = this.BuildingStorey.StoreyHeight;
            Point3d extStartPoint    = new Point3d(extrusionLine.RhinoLine.From.X, extrusionLine.RhinoLine.From.Y, beamTopElevation);
            Point3d extEndPoint      = new Point3d(extrusionLine.RhinoLine.To.X, extrusionLine.RhinoLine.To.Y, beamTopElevation);
            Line    extLine          = new Line(extStartPoint, extEndPoint);

            Profile = profile;
        }
Esempio n. 7
0
 public HndzOpening(string name, string description, HndzProfile profile = null, HndzLine extrusionLine = null, HndzExtrudedElement relatedProduct = null, Double baseOffset = 0) : base()
 {
     Name           = name;
     Description    = description;
     Profile        = profile;
     ExtrusionLine  = extrusionLine;
     RelatedProduct = relatedProduct;
     BaseOffset     = baseOffset;
     if (RelatedProduct != null)
     {
         base.BuildingStorey = RelatedProduct.BuildingStorey;
     }
     AddToAssociatedProduct();
     base.AddToAssociatedStorey();
 }
Esempio n. 8
0
        public HndzCurtainWallArc(String name, String description, HndzStorey storey, Double baseOffset = 0,
                                  Arc baseArc = default(Arc), Double unconnectedHeight = 0, Double wallThickness = 0,
                                  ICollection <HndzWallOpening> wallOpenings = null) :
            base(name, description, unconnectedHeight, wallThickness, storey, baseOffset, wallOpenings)
        {
            //TODO: MS: convert this into hndzProfile
            BaseArc = baseArc;
            Point3d mid = GetPointOnArc(BaseArc, .5);

            Point3d StartPoint = new Point3d(mid.X, mid.Y, BaseOffset);
            Point3d EndPoint   = new Point3d(mid.X, mid.Y, unconnectedHeight + BaseOffset);

            //Point3d StartPoint = new Point3d(BaseArc.MidPoint.X, BaseArc.MidPoint.Y, BaseOffset);
            //Point3d EndPoint = new Point3d(StartPoint.X, StartPoint.Y, unconnectedHeight + BaseOffset);
            ExtrusionLine = new HndzLine(new Line(StartPoint, EndPoint));
        }
        public HndzWallStandardCase(String name, String description, HndzStorey storey, Double baseOffset = 0,
                                    Line baseLine = default(Line), Double unconnectedHeight = 0, Double wallThickness = 0, ICollection <HndzWallOpening> wallOpenings = null) :
            base(name, description, unconnectedHeight, wallThickness, storey, baseOffset, wallOpenings)
        {
            BaseLine = baseLine;
            //MS:
            //Step1: Create HndzProfile
            var myWallRec         = new Rectangle3d(Plane.WorldXY, wallThickness, BaseLine.Length);
            var orientationVector = new Vector2d(BaseLine.UnitTangent.X, BaseLine.UnitTangent.Y);
            var myHndzProfile     = new HndzRectangularProfile(myWallRec, orientationVector);

            Profile = myHndzProfile;

            //Step2: Create Extrusion Line
            Point3d StartPoint = new Point3d(BaseLine.PointAt(.5).X, BaseLine.PointAt(.5).Y, BaseOffset + storey.Elevation);
            Point3d EndPoint   = new Point3d(StartPoint.X, StartPoint.Y, unconnectedHeight + BaseOffset + storey.Elevation);

            ExtrusionLine = new HndzLine(new Line(StartPoint, EndPoint));
        }
Esempio n. 10
0
 /// <summary>
 /// main constructor
 /// </summary>
 /// <param name="profile">constant profile along column extrude direction</param>
 /// <param name="name">name for the column</param>
 /// <param name="description">description for the column</param>
 /// <param name="height">column actual height(in Z-direction)</param>
 /// <param name="storey">storey which contains the column base elevation</param>
 /// <param name="topLevel">storey which intersects with column top elevation</param>
 /// <param name="baseOffset">offset from base</param>
 /// <param name="topOffset">offset from top</param>
 public HndzBracingStandrdCase(string name, string description, HndzProfile profile, HndzLine extrusionLine, HndzStorey storey = null,
                               double baseOffset = 0) :
     base(name, description, extrusionLine, profile, storey, baseOffset)
 {
     Profile = profile;
 }
Esempio n. 11
0
 public HndzFloor(HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null, Double baseOffset = 0) :
     this(HndzResources.DefaultName, HndzResources.DefaultDescription, profile, extrusionLine, storey, baseOffset)
 {
 }
Esempio n. 12
0
 public HndzFloor(String name, String description, HndzProfile profile, HndzLine extrusionLine, HndzStorey storey = null, Double baseOffset = 0) :
     base(name, description, extrusionLine, storey, baseOffset)
 {
     Profile = profile;
 }
Esempio n. 13
0
 public HndzOpening(HndzProfile profile, HndzLine extrusionLine, HndzExtrudedElement relatedProduct = null,
                    Double baseOffset = 0) :
     this(HndzResources.DefaultName, HndzResources.DefaultDescription, profile,
          extrusionLine, relatedProduct, baseOffset)
 {
 }
Esempio n. 14
0
 public HndzArchitecturalElement(string name, string description, HndzLine extrusionLine, HndzStorey storey = null, double baseOffset = 0) :
     base(name, description, extrusionLine, storey, baseOffset, HndzProductDiscipline.Architectural)
 {
 }
Esempio n. 15
0
        public override void AssemblePEB(SectionI columnsStartSection = null, SectionI columnsEndSection = null, SectionI beamsStartSection = null, SectionI beamsEndSection = null, SectionChannel purlinsSection = null)
        {
            const double FirstPurlinSpacingCL = 100;
            //const double FirstPurlinSpacingEdge = 0;

            //SectionI AssumedIBuiltUpSection = new SectionI("Assumed Built up I Section", 600, 250, 20, 10);
            SectionChannel      AssumedCSection = new SectionChannel("Assumed hotRolled C Section", 180, 80, 10, 4);
            HndzISectionProfile bigProfile      = new HndzISectionProfile(new SectionI("big", 1000 * 2, 500 * 2, 100 * 2, 50 * 2));
            HndzISectionProfile smallProfile    = new HndzISectionProfile(new SectionI("small", 1000, 500, 100, 50));


            HndzITaperedProfile assumedProfileColumn = new HndzITaperedProfile(smallProfile, bigProfile, new Vector2d(1, 0));
            HndzITaperedProfile assumedProfileBeam   = new HndzITaperedProfile(bigProfile, smallProfile, new Vector2d(0, 1));

            HndzITaperedProfile columnsTaperedProfile = null;
            HndzITaperedProfile beamsTaperedProfile   = null;

            #region Check function parameters

            if (columnsStartSection == null && columnsEndSection != null)
            {
                columnsTaperedProfile = new HndzITaperedProfile(new HndzISectionProfile(columnsEndSection),
                                                                new HndzISectionProfile(columnsEndSection), new Vector2d(0, 1));
            }
            else if (columnsEndSection == null && columnsStartSection != null)
            {
                columnsTaperedProfile = new HndzITaperedProfile(new HndzISectionProfile(columnsStartSection),
                                                                new HndzISectionProfile(columnsStartSection), new Vector2d(0, 1));
            }
            else if (columnsStartSection != null && columnsEndSection != null)
            {
                columnsTaperedProfile = new HndzITaperedProfile(new HndzISectionProfile(columnsStartSection),
                                                                new HndzISectionProfile(columnsEndSection), new Vector2d(0, 1));
            }
            else // dah law el el 2 sections b null
            {
                columnsTaperedProfile = assumedProfileColumn;
            }



            if (beamsStartSection == null && beamsEndSection != null)
            {
                beamsTaperedProfile = new HndzITaperedProfile(new HndzISectionProfile(beamsEndSection),
                                                              new HndzISectionProfile(beamsEndSection), new Vector2d(1, 0));
            }
            else if (beamsEndSection == null && beamsStartSection != null)
            {
                beamsTaperedProfile = new HndzITaperedProfile(new HndzISectionProfile(beamsStartSection),
                                                              new HndzISectionProfile(beamsStartSection), new Vector2d(1, 0));
            }
            else if (beamsStartSection != null && beamsEndSection != null)
            {
                beamsTaperedProfile = new HndzITaperedProfile(new HndzISectionProfile(beamsStartSection),
                                                              new HndzISectionProfile(beamsEndSection), new Vector2d(1, 0));
            }
            else // dah law el el 2 sections b null
            {
                beamsTaperedProfile = assumedProfileBeam;
            }



            if (purlinsSection == null)
            {
                purlinsSection = AssumedCSection;
            }
            #endregion

            columnsStartSection = columnsTaperedProfile.StartProfile.I_Section;
            columnsEndSection   = columnsTaperedProfile.EndProfile.I_Section;

            beamsStartSection = beamsTaperedProfile.StartProfile.I_Section;
            beamsEndSection   = beamsTaperedProfile.EndProfile.I_Section;
            double beamZoffset = beamsStartSection.d / 2 + beamsStartSection.tf;//ToDo: add to beam and purlin
            Frames2D = new List <HndzFrameSingleBay2D>(FramesCount);
            Purlins  = new List <HndzPurlinStandrdCase>();
            //Girts = new List<HndzGuirt>(2);

            for (int framesCounter = 0; framesCounter < FramesCount; framesCounter++)
            {
                HndzFrameSingleBay2D Frame = new HndzFrameSingleBay2D();

                Point3d lowerLeft  = new Point3d(-Width / 2, BaySpacing * framesCounter, 0);
                Point3d lowerRight = new Point3d(Width / 2, BaySpacing * framesCounter, 0);

                Point3d upperLeft  = new Point3d(-Width / 2, BaySpacing * framesCounter, EaveHeight);
                Point3d upperRight = new Point3d(Width / 2, BaySpacing * framesCounter, EaveHeight);

                Point3d ridgeMid = new Point3d(0, BaySpacing * framesCounter, RidgeHeight);

                ////
                HndzLine rColLine = new HndzLine(lowerRight, upperRight);
                Frame.RightColumn = new HndzColumnStandardCase(rColLine, columnsTaperedProfile);

                HndzLine lColLine = new HndzLine(lowerLeft, upperLeft);
                Frame.LeftColumn = new HndzColumnStandardCase(lColLine, columnsTaperedProfile);

                /////
                HndzLine rBeamLine = new HndzLine(upperRight, ridgeMid);
                Frame.RightBeam = new HndzBeamStandrdCase(rBeamLine, beamsTaperedProfile);

                HndzLine lBeamLine = new HndzLine(upperLeft, ridgeMid);
                Frame.LeftBeam = new HndzBeamStandrdCase(lBeamLine, beamsTaperedProfile);

                Frame.RightSupport = new HndzSupport(HndzSupportTypeEnum.Pinned, new HndzNode(lowerRight));
                Frame.LeftSupport  = new HndzSupport(HndzSupportTypeEnum.Pinned, new HndzNode(lowerLeft));

                Frames2D.Add(Frame);
            }
            double roofSlopeAngle = 1;
            switch (RoofSlope)
            {
            case HndzRoofSlopeEnum.From1To5:
                roofSlopeAngle = Math.Atan(0.2);
                break;

            case HndzRoofSlopeEnum.From1To10:
                roofSlopeAngle = Math.Atan(0.1);
                break;

            case HndzRoofSlopeEnum.From1To20:
                roofSlopeAngle = Math.Atan(0.05);
                break;
            }

            //double pulinZoffset = beamsStartSection.d / 2 - beamsStartSection.tf / 2; ///////Need Revision "msh 3arf ezay bs hya kda sha8ala 7lw :D"
            double pulinZoffset = /*beamsEndSection.d / 2 */ +purlinsSection.d / 2; ///////Need Revision "msh 3arf ezay bs hya kda sha8ala 7lw :D"
            //double taperingDiffrence = 0.5*(beamsStartSection.d - beamsEndSection.d);
            double xLeft = 0 - FirstPurlinSpacingCL;
            double zLeft = RidgeHeight + pulinZoffset;
            pulinZoffset = 0;

            double taperingZoffsetLeft = PurlinSpacing * ((beamsStartSection.d - beamsEndSection.d) / 2) / (Frames2D.ElementAt(0).LeftBeam.ExtrusionLine.RhinoLine.Length);
            taperingZoffsetLeft = 0;
            do
            {
                Point3d startL = new Point3d(xLeft, 0, zLeft);
                Point3d endL   = new Point3d(xLeft, Length, zLeft);

                HndzCSectionProfile assumedProfilePurlin = new HndzCSectionProfile(purlinsSection, new Vector2d(0, -1));

                HndzLine purlinLine = new HndzLine(new Line(startL, endL));
                Purlins.Add(new HndzPurlinStandrdCase(assumedProfilePurlin, purlinLine));

                xLeft -= PurlinSpacing;
                zLeft -= PurlinSpacing * Math.Tan(roofSlopeAngle) - taperingZoffsetLeft;
            } while (xLeft > -Width / 2 + FirstPurlinSpacingCL && zLeft > EaveHeight + pulinZoffset);

            double xRight = 0 + FirstPurlinSpacingCL;
            double zRight = RidgeHeight + pulinZoffset;

            do
            {
                Point3d startR = new Point3d(xRight, 0, zRight);
                Point3d endR   = new Point3d(xRight, Length, zRight);

                HndzCSectionProfile assumedProfilePurlin = new HndzCSectionProfile(purlinsSection, new Vector2d(0, 1));

                HndzLine purlinLine = new HndzLine(new Line(startR, endR));
                Purlins.Add(new HndzPurlinStandrdCase(assumedProfilePurlin, purlinLine));

                xRight += PurlinSpacing;
                zRight -= PurlinSpacing * Math.Tan(roofSlopeAngle) - taperingZoffsetLeft;
            } while (xRight < Width / 2 && zRight > EaveHeight + pulinZoffset);
        }
Esempio n. 16
0
 protected HndzBeam(String name, String description, HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null, double baseOffset = 0) :
     base(name, description, extrusionLine, profile, storey, baseOffset)
 {
 }
Esempio n. 17
0
 public HndzStairLanding(String name, String description, HndzProfile profile, HndzLine extrusionLine, HndzStorey storey = null, Double baseOffset = 0) :
     base(name, description, profile, extrusionLine, storey, baseOffset)
 {
 }
 /// <summary>
 /// Constructor takes extrusion line and base storey
 /// </summary>
 /// <param name="name">Column Name</param>
 /// <param name="description">Column Description</param>
 /// <param name="extrusionLine">line represents start and end point of the column and its direction</param>
 /// <param name="storey">Base Storey</param>
 /// <param name="baseOffset">Base Offset from base storey Elevation value</param>
 /// <param name="discipline">Discipline as Enum e.g. Arch, Str ... etc</param>
 /// <param name="profile">Column Profile</param>
 public HndzColumnStandardCase(String name, String description, HndzProfile profile, HndzLine extrusionLine, HndzStorey storey = null, Double baseOffset = 0,
                               HndzProductDiscipline discipline = HndzProductDiscipline.Structural) :
     base(name, description, extrusionLine, profile, storey, baseOffset, discipline)
 {
 }
Esempio n. 19
0
 protected HndzPurlin(String name, String description, HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null,
                      double baseOffset = 0, Vector3d direction = default(Vector3d)) :
     base(name, description, extrusionLine, profile, storey, baseOffset)
 {
 }
Esempio n. 20
0
 protected HndzStructuralElement(string name, string description, HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null, double baseOffset = 0) :
     base(name, description, extrusionLine, storey, baseOffset, HndzProductDiscipline.Structural)
 {
     Profile = profile;
 }
Esempio n. 21
0
 /// <summary>
 /// our default constructor
 /// </summary>
 /// <param name="profile">constant profile along column extrude direction</param>
 /// <param name="height">column actual height(in Z-direction)</param>
 /// <param name="storey">storey which contains the column base elevation</param>
 /// <param name="topLevel">storey which intersects with column top elevation</param>
 /// <param name="baseOffset">offset from base</param>
 /// <param name="topOffset">offset from top</param>
 public HndzBracingStandrdCase(HndzProfile profile, HndzLine extrusionLine, HndzStorey storey = null, HndzStorey topLevel = null,
                               double baseOffset = 0, double topOffset = 0) :
     this(HndzResources.DefaultName, HndzResources.DefaultDescription, profile, extrusionLine, storey, baseOffset)
 {
 }
Esempio n. 22
0
 }                                     // ana msh m7tagha
 #endregion
 #region Constructors
 protected HndzColumn(String name, String description, HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null, Double baseOffset = 0,
                      HndzProductDiscipline discipline = HndzProductDiscipline.Structural) :
     base(name, description, extrusionLine, profile, storey, baseOffset)
 {
     UnconnectedHeight = extrusionLine.RhinoLine.Length;
 }
 /// <summary>
 /// Constructor takes extrusion line and base storey
 /// </summary>
 /// <param name="extrusionLine">line represents base point of the column and end point represents where column extrusion will end </param>
 /// <param name="storey">Base Storey</param>
 /// <param name="baseOffset">Base Offset from base storey Elevation value</param>
 /// <param name="discipline">Discipline as Enum e.g. Arch, Str ... etc</param>
 /// <param name="profile">Column Profile</param>
 public HndzColumnStandardCase(HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null, Double baseOffset = 0,
                               HndzProductDiscipline discipline = HndzProductDiscipline.Structural) :
     this(HndzResources.DefaultName, HndzResources.DefaultDescription, profile, extrusionLine, storey, baseOffset, discipline)
 {
 }