protected override void SolveInstance(IGH_DataAccess da) { var points = 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_point_loads = new List <GS_PointLoad>(); for (int i = 0; i < points.Count; ++i) { var point = points.GetItemOrLast(i); if (!(point is null)) { var pl = new GS_PointLoad() { LoadCase = loadcases.GetItemOrLast(i), Forces = forces.GetItemOrLast(i), Moments = moments.GetItemOrLast(i), UseHostLocal = hostlocals.GetItemOrLast(i) }; bool addPoint = true; if (point is GS_StructuralPoint) { var spt = point as GS_StructuralPoint; pl.Value = spt.Value; pl.ReferencePoint = spt; // pass reference of structural point } else if (point is GH_Point) { pl.Value = new Point((point as GH_Point).Value); } else { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Unable to Cast input to Point Geometry"); addPoint = false; } if (addPoint) { gs_point_loads.Add(pl); } } } da.SetDataList(0, gs_point_loads); }
protected override void SolveInstance(IGH_DataAccess da) { var points = 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_point_loads = new List <GS_PointLoad>(); for (int i = 0; i < points.Count; ++i) { var pl = new GS_PointLoad() { LoadCase = loadcases.GetItemOrLast(i), Forces = forces.GetItemOrLast(i), Moments = moments.GetItemOrLast(i), UseHostLocal = hostlocals.GetItemOrLast(i) }; if (points[i] is GS_StructuralPoint) { var spt = points[i] as GS_StructuralPoint; pl.Value = spt.Value; pl.ReferencePointId = spt.Id; // pass id of structural point } else if (points[i] is GH_Point) { pl.Value = new Point((points[i] as GH_Point).Value); } else { throw new Exception("Unable to Cast input to Point Geometry"); } gs_point_loads.Add(pl); } da.SetDataList(0, gs_point_loads); }