protected override void SolveInstance(IGH_DataAccess da) { var breps = da.GetDataList <Brep>(0); var ids = da.GetDataList <int>(1); var groups = da.GetDataList <int>(2); var thicknss = da.GetDataList <double>(3); var materials = da.GetDataList <int>(4); var matreinfs = da.GetDataList <int>(5); var xdirs = da.GetDataList <Vector3d>(6); var zflip = da.GetDataList <bool>(7); var alignment = da.GetDataList <string>(8); var meshOptions = da.GetDataList <string>(9); var elementSize = da.GetDataList <double>(10); var userText = da.GetDataList <string>(11); var gh_structural_areas = new List <GS_StructuralArea>(); for (int i = 0; i < breps.Count; ++i) { var b = breps[i]; if (!(b is null)) { var ga = new GS_StructuralArea() { Value = b, Id = ids.GetItemOrCountUp(i), GroupId = groups.GetItemOrLast(i), MaterialId = materials.GetItemOrLast(i), ReinforcementId = matreinfs.GetItemOrLast(i), Thickness = thicknss.GetItemOrLast(i), DirectionLocalX = xdirs.GetItemOrLast(i), FlipZ = zflip.GetItemOrLast(i), Alignment = parseAlignmentString(alignment.GetItemOrLast(i)), MeshOptions = parseMeshOptionsString(meshOptions.GetItemOrLast(i)), ElementSize = elementSize.GetItemOrLast(i), UserText = userText.GetItemOrLast(i) }; gh_structural_areas.Add(ga); } } da.SetDataList(0, gh_structural_areas); }
protected override void SolveInstance(IGH_DataAccess da) { var breps = da.GetDataList <GH_Brep>(0); var ids = da.GetDataList <int>(1); var groups = da.GetDataList <int>(2); var thicknss = da.GetDataList <double>(3); var materials = da.GetDataList <int>(4); var matreinfs = da.GetDataList <int>(5); var xdirs = da.GetDataList <Vector3d>(6); var zflip = da.GetDataList <bool>(7); var alignment = da.GetDataList <string>(8); var meshOptions = da.GetDataList <string>(9); var elementSize = da.GetDataList <double>(10); var userText = da.GetDataList <string>(11); var gh_structural_areas = new List <GS_StructuralArea>(); for (int i = 0; i < breps.Count; ++i) { var b = breps[i]; if (!(b is null)) { var ga = new GS_StructuralArea() { Value = b.Value, Id = ids.GetItemOrCountUp(i), GroupId = groups.GetItemOrLast(i), MaterialId = materials.GetItemOrLast(i), ReinforcementId = matreinfs.GetItemOrLast(i), Thickness = thicknss.GetItemOrLast(i), DirectionLocalX = xdirs.GetItemOrLast(i), FlipZ = zflip.GetItemOrLast(i), Alignment = parseAlignmentString(alignment.GetItemOrLast(i)), MeshOptions = parseMeshOptionsString(meshOptions.GetItemOrLast(i)), ElementSize = elementSize.GetItemOrLast(i), UserText = userText.GetItemOrLast(i) }; // brep is of specific type generated along axis (with optional thickness information) if (b is GH_AxisBrep) { var ba = b as GH_AxisBrep; if (ba.EdgeThicknessLeft > 1.0E-4 || ba.EdgeThicknessRight > 1.0E-4) { var edgeThicknessList = new List <double> { ba.EdgeThicknessLeft, 0.0, ba.EdgeThicknessRight, 0.0 }; // reverse when AxisBrep was created with Brep.CreateFromLoft, keep original order when it was created with NurbsSurface.CreateRuledSurface edgeThicknessList.Reverse(); ga.ThickessAtEdges = edgeThicknessList; } } gh_structural_areas.Add(ga); } } da.SetDataList(0, gh_structural_areas); }