protected override void SolveInstance(IGH_DataAccess da) { var curves = da.GetDataList <IGH_GeometricGoo>(0); var loadcases = da.GetDataList <int>(1); var forces = da.GetDataList <Vector3d>(2); var moments = da.GetDataList <Vector3d>(3); var hostlocals = da.GetDataList <bool>(4); var gs_line_loads = new List <GS_LineLoad>(); for (int i = 0; i < curves.Count; ++i) { var curve = curves.GetItemOrLast(i); if (!(curve is null)) { var ll = new GS_LineLoad() { LoadCase = loadcases.GetItemOrLast(i), Forces = forces.GetItemOrLast(i), Moments = moments.GetItemOrLast(i), UseHostLocal = hostlocals.GetItemOrLast(i) }; bool addCurve = true; if (curve is GS_StructuralLine) { var sln = curve as GS_StructuralLine; ll.Value = sln.Value; ll.ReferenceLine = sln; // pass reference of structural line } else if (curve is GH_Curve) { ll.Value = (curve as GH_Curve).Value; } else if (curve is GH_Line) { ll.Value = new LineCurve((curve as GH_Line).Value); } else if (curve is GH_Arc) { ll.Value = new ArcCurve((curve as GH_Arc).Value); } else { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Unable to Cast input to Curve Geometry"); addCurve = false; } if (addCurve) { gs_line_loads.Add(ll); } } } da.SetDataList(0, gs_line_loads); }
protected override void SolveInstance(IGH_DataAccess da) { var curves = da.GetDataList <IGH_GeometricGoo>(0); var loadcases = da.GetDataList <int>(1); var forces = da.GetDataList <Vector3d>(2); var moments = da.GetDataList <Vector3d>(3); var hostlocals = da.GetDataList <bool>(4); var gs_line_loads = new List <GS_LineLoad>(); for (int i = 0; i < curves.Count; ++i) { var ll = new GS_LineLoad() { LoadCase = loadcases.GetItemOrLast(i), Forces = forces.GetItemOrLast(i), Moments = moments.GetItemOrLast(i), UseHostLocal = hostlocals.GetItemOrLast(i) }; if (curves[i] is GS_StructuralLine) { var sln = curves[i] as GS_StructuralLine; ll.Value = sln.Value; ll.ReferenceLineId = sln.Id; // pass id of structural line } else if (curves[i] is GH_Curve) { ll.Value = (curves[i] as GH_Curve).Value; } else if (curves[i] is GH_Line) { ll.Value = new LineCurve((curves[i] as GH_Line).Value); } else if (curves[i] is GH_Arc) { ll.Value = new ArcCurve((curves[i] as GH_Arc).Value); } else { throw new Exception("Unable to Cast input to Curve Geometry"); } gs_line_loads.Add(ll); } da.SetDataList(0, gs_line_loads); }