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)); }
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; }
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)); }
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; }
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(); }
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)); }
/// <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; }
public HndzFloor(HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null, Double baseOffset = 0) : this(HndzResources.DefaultName, HndzResources.DefaultDescription, profile, extrusionLine, storey, baseOffset) { }
public HndzFloor(String name, String description, HndzProfile profile, HndzLine extrusionLine, HndzStorey storey = null, Double baseOffset = 0) : base(name, description, extrusionLine, storey, baseOffset) { Profile = profile; }
public HndzOpening(HndzProfile profile, HndzLine extrusionLine, HndzExtrudedElement relatedProduct = null, Double baseOffset = 0) : this(HndzResources.DefaultName, HndzResources.DefaultDescription, profile, extrusionLine, relatedProduct, baseOffset) { }
public HndzArchitecturalElement(string name, string description, HndzLine extrusionLine, HndzStorey storey = null, double baseOffset = 0) : base(name, description, extrusionLine, storey, baseOffset, HndzProductDiscipline.Architectural) { }
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); }
protected HndzBeam(String name, String description, HndzLine extrusionLine, HndzProfile profile, HndzStorey storey = null, double baseOffset = 0) : base(name, description, extrusionLine, profile, storey, baseOffset) { }
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) { }
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) { }
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; }
/// <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) { }
} // 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) { }