Example #1
0
        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);
        }
Example #2
0
        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);
        }