/// <summary> /// Construct post-tension cable /// </summary> /// <param name="bar">Reference bar element</param> /// <param name="shape"></param> /// <param name="losses"></param> /// <param name="manufacturing"></param> /// <param name="strand"></param> /// <param name="numberOfStrands"></param> /// <param name="identifier"></param> public Ptc(Bars.Bar bar, PtcShapeType shape, PtcLosses losses, PtcManufacturingType manufacturing, PtcStrandLibType strand, JackingSide jackingSide, double jackingStress, int numberOfStrands = 3, string identifier = "PTC") { if (bar.BarPart.Edge.Type == "line") { var start = bar.BarPart.Edge.Points[0]; var end = bar.BarPart.Edge.Points[1]; Initialize(start, end, bar.BarPart.Guid, shape, losses, manufacturing, strand, jackingSide, jackingStress, numberOfStrands, identifier); } else { throw new ArgumentException($"Bar must be of type line but got '{bar.BarPart.Edge.Type}'", "bar"); } }
private void Initialize(Geometry.FdPoint3d start, Geometry.FdPoint3d end, Guid baseObject, PtcShapeType shape, PtcLosses losses, PtcManufacturingType manufacturing, PtcStrandLibType strand, JackingSide jackingSide, double jackingStress, int numberOfStrands, string identifier) { StartPoint = start; EndPoint = end; BaseObject = baseObject; StrandType = strand; StrandTypeGuid = strand.Guid; Name = $"{identifier}.{++instances}"; Losses = losses; NumberOfStrands = numberOfStrands; JackingSide = jackingSide; JackingStress = jackingStress; ShapeBasePoints = shape; Manufacturing = manufacturing; EntityCreated(); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { double curvatureCoefficient = 0.0; double wobbleCoefficient = 0.0; double anchorageSetSlip = 0.0; double elasticShortening = 0.0; double creepStress = 0.0; double shrinkageStress = 0.0; double relaxationStress = 0.0; DA.GetData("CurvatureCoefficient", ref curvatureCoefficient); DA.GetData("WobbleCoefficient", ref wobbleCoefficient); DA.GetData("AnchorageSetSlip", ref anchorageSetSlip); DA.GetData("ElasticShortening", ref elasticShortening); DA.GetData("CreepStress", ref creepStress); DA.GetData("ShrinkageStress", ref shrinkageStress); DA.GetData("RelaxationStress", ref relaxationStress); var losses = new PtcLosses(curvatureCoefficient, wobbleCoefficient, anchorageSetSlip, elasticShortening, creepStress, shrinkageStress, relaxationStress); DA.SetData("PtcLosses", losses); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { Bars.Bar bar = null; PtcShapeType shape = null; PtcLosses losses = null; PtcManufacturingType manufacturing = null; PtcStrandLibType strandData = null; string jackingSide = "start"; double jackingStress = 200.0; int numberOfStrands = 3; string identifier = "PTC"; DA.GetData("Bar", ref bar); DA.GetData("Shape", ref shape); DA.GetData("Losses", ref losses); DA.GetData("Manufacturing", ref manufacturing); DA.GetData("StrandData", ref strandData); DA.GetData("JackingSide", ref jackingSide); DA.GetData("JackingStress", ref jackingStress); DA.GetData("NumberOfStrands", ref numberOfStrands); DA.GetData("Identifier", ref identifier); if (bar == null || shape == null || losses == null || manufacturing == null || strandData == null) { return; } JackingSide side = GenericClasses.EnumParser.Parse <JackingSide>(jackingSide); var ptc = new Ptc(bar, shape, losses, manufacturing, strandData, side, jackingStress, numberOfStrands, identifier); // add to bar var clone = bar.DeepClone(); clone.Ptc.Add(ptc); DA.SetData("Bar", clone); }
/// <summary> /// Construct post-tension cable /// </summary> /// <param name="slab">Reference slab element</param> /// <param name="line">Cable line</param> /// <param name="shape"></param> /// <param name="losses"></param> /// <param name="manufacturing"></param> /// <param name="strand"></param> /// <param name="numberOfStrands"></param> /// <param name="identifier"></param> public Ptc(Shells.Slab slab, Geometry.LineSegment line, PtcShapeType shape, PtcLosses losses, PtcManufacturingType manufacturing, PtcStrandLibType strand, JackingSide jackingSide, double jackingStress, int numberOfStrands = 3, string identifier = "PTC") { Initialize(line.StartPoint, line.EndPoint, slab.SlabPart.Guid, shape, losses, manufacturing, strand, jackingSide, jackingStress, numberOfStrands, identifier); }