public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_RuntimeMessageLevel level) { msg = ""; level = GH_RuntimeMessageLevel.Blank; //var line = new LineCurve(); Curve inCurve = null; var noIndex = 0; var comment = ""; var rfHinge = new RFLineHinge(); var inRFEM = new GH_RFEM(); var mod = false; var del = false; var tx = 0.0; var ty = 0.0; var tz = 0.0; var rx = 0.0; var ry = 0.0; var rz = 0.0; var lineNo = 0; var sfcNo = 0; var side = 0; //int newNo = 0; if (DA.GetData(12, ref inRFEM)) { rfHinge = new RFLineHinge((RFLineHinge)inRFEM.Value); if (DA.GetData(0, ref inCurve)) { var myRFLine = new RFLine(); Component_RFLine.SetGeometry(inCurve, ref myRFLine); rfHinge = new RFLineHinge(rfHinge, myRFLine); } if (DA.GetData(10, ref lineNo)) { rfHinge.LineNo = lineNo; } } else if (DA.GetData(0, ref inCurve)) { var myRFLine = new RFLine(); Component_RFLine.SetGeometry(inCurve, ref myRFLine); rfHinge = new RFLineHinge(new RFLineHinge(), myRFLine); } else if (DA.GetData(10, ref lineNo)) { rfHinge.LineNo = lineNo; } else { msg = "Insufficient input parameters. Provide either Input Curve or Line Number or existing RFLineHinge Object. "; level = GH_RuntimeMessageLevel.Warning; return; } if (DA.GetData(13, ref mod)) { rfHinge.ToModify = mod; } if (DA.GetData(14, ref del)) { rfHinge.ToDelete = del; } if (DA.GetData(1, ref noIndex)) { rfHinge.No = noIndex; } if (DA.GetData(2, ref sfcNo)) { rfHinge.SfcNo = sfcNo; } if (DA.GetData(9, ref comment)) { rfHinge.Comment = comment; } if (DA.GetData(3, ref tx)) { rfHinge.Tx = tx; } if (DA.GetData(4, ref ty)) { rfHinge.Ty = ty; } if (DA.GetData(5, ref tz)) { rfHinge.Tz = tz; } if (DA.GetData(6, ref rx)) { rfHinge.Rx = rx; } if (DA.GetData(7, ref ry)) { rfHinge.Ry = ry; } if (DA.GetData(8, ref rz)) { rfHinge.Rz = rz; } if (DA.GetData(11, ref side)) { rfHinge.Side = (HingeSideType)side; if (rfHinge.Side == HingeSideType.UnknownSideType) { msg = "Hinge Side Type not supported. "; level = GH_RuntimeMessageLevel.Warning; return; } } DA.SetData(0, rfHinge); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object can be used to retrieve data from input parameters and /// to store data in output parameters.</param> protected override void SolveInstance(IGH_DataAccess DA, EvaluationUnit unit) { //var line = new LineCurve(); Curve inCurve = null; var noIndex = 0; var comment = ""; var rfHinge = new RFLineHinge(); var inRFEM = new GH_RFEM(); var mod = false; var del = false; var tx = 0.0; var ty = 0.0; var tz = 0.0; var rx = 0.0; var ry = 0.0; var rz = 0.0; var lineNo = 0; var sfcNo = 0; var side = ""; //int newNo = 0; if (DA.GetData(12, ref inRFEM)) { rfHinge = new RFLineHinge((RFLineHinge)inRFEM.Value); } else if (DA.GetData(0, ref inCurve)) { var myRFLine = new RFLine(); Component_RFLine.SetGeometry(inCurve, ref myRFLine); rfHinge = new RFLineHinge(new RFLineHinge(), myRFLine); } else if (DA.GetData(10, ref lineNo)) { rfHinge.LineNo = lineNo; } else { return; } if (DA.GetData(13, ref mod)) { rfHinge.ToModify = mod; } if (DA.GetData(14, ref del)) { rfHinge.ToDelete = del; } if (DA.GetData(1, ref noIndex)) { rfHinge.No = noIndex; } if (DA.GetData(2, ref sfcNo)) { rfHinge.SfcNo = sfcNo; } if (DA.GetData(9, ref comment)) { rfHinge.Comment = comment; } if (DA.GetData(3, ref tx)) { rfHinge.Tx = tx; } if (DA.GetData(4, ref ty)) { rfHinge.Ty = ty; } if (DA.GetData(5, ref tz)) { rfHinge.Tz = tz; } if (DA.GetData(6, ref rx)) { rfHinge.Rx = rx; } if (DA.GetData(7, ref ry)) { rfHinge.Ry = ry; } if (DA.GetData(8, ref rz)) { rfHinge.Rz = rz; } if (DA.GetData(11, ref side)) { Enum.TryParse(side, out HingeSideType mySide); rfHinge.Side = mySide; } DA.SetData(0, rfHinge); }