Esempio n. 1
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            // get input
            FemDesign.Shells.Slab slab = null;
            double avgMeshSize         = 0;

            if (!DA.GetData(0, ref slab))
            {
                return;
            }
            if (!DA.GetData(1, ref avgMeshSize))
            {
                return;
            }
            if (slab == null)
            {
                return;
            }

            //
            FemDesign.Shells.Slab obj = FemDesign.Shells.Slab.AverageSurfaceElementSize(slab, avgMeshSize);

            //
            DA.SetData(0, obj);
        }
Esempio n. 2
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            // get data
            FemDesign.Shells.Slab slab = null;
            List <FemDesign.Reinforcement.SurfaceReinforcement> surfaceReinforcement = new List <FemDesign.Reinforcement.SurfaceReinforcement>();

            if (!DA.GetData(0, ref slab))
            {
                return;
            }
            if (!DA.GetDataList(1, surfaceReinforcement))
            {
                return;
            }
            if (slab == null || surfaceReinforcement == null)
            {
                return;
            }

            //
            FemDesign.Shells.Slab obj = FemDesign.Reinforcement.SurfaceReinforcement.AddReinforcementToSlab(slab, surfaceReinforcement);

            // return
            DA.SetData(0, obj);
        }
Esempio n. 3
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            // get input
            FemDesign.Shells.Slab slab = null;
            if (!DA.GetData(0, ref slab))
            {
                return;
            }
            if (slab == null)
            {
                return;
            }

            // return
            DA.SetData(0, slab.Guid);
            DA.SetData(1, slab.SlabPart.GetRhinoSurface());
            DA.SetDataList(2, slab.SlabPart.Thickness);
            DA.SetData(3, slab.Material);
            DA.SetData(4, slab.SlabPart.ShellEccentricity);
            DA.SetData(5, slab.SlabPart.ShellOrthotropy);
            DA.SetDataList(6, slab.SlabPart.GetRhinoCurves());
            DA.SetDataList(7, slab.SlabPart.GetEdgeConnections());
            DA.SetData(8, slab.SlabPart.LocalX.ToRhino());
            DA.SetData(9, slab.SlabPart.LocalY.ToRhino());
            DA.SetData(10, slab.SurfaceReinforcementParameters);
            DA.SetDataList(11, slab.SurfaceReinforcement);
            DA.SetData(12, slab.Name);
        }
Esempio n. 4
0
 public static Dictionary <string, object> SlabDeconstruct(FemDesign.Shells.Slab slab)
 {
     return(new Dictionary <string, object>
     {
         { "Guid", slab.Guid },
         { "Surface", slab.SlabPart.Region.ToDynamoSurface() },
         { "ThicknessItems", slab.SlabPart.Thickness },
         { "Material", slab.Material },
         { "ShellEccentricity", slab.SlabPart.ShellEccentricity },
         { "ShellOrthotropy", slab.SlabPart.ShellOrthotropy },
         { "EdgeCurves", slab.SlabPart.Region.ToDynamoCurves() },
         { "EdgeConnections", slab.SlabPart.GetEdgeConnections() },
         { "LocalX", slab.SlabPart.LocalX.ToDynamo() },
         { "LocalY", slab.SlabPart.LocalY.ToDynamo() },
         { "SurfaceReinforcementParameters", slab.SurfaceReinforcementParameters },
         { "SurfaceReinforcement", slab.SurfaceReinforcement },
         { "Identifier", slab.Name }
     });
 }
Esempio n. 5
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            // get input
            Brep surface = null;

            if (!DA.GetData(0, ref surface))
            {
                return;
            }

            double thickness = 0;

            if (!DA.GetData(1, ref thickness))
            {
                return;
            }

            FemDesign.Materials.Material material = null;
            if (!DA.GetData(2, ref material))
            {
                return;
            }

            FemDesign.Shells.ShellEccentricity eccentricity = FemDesign.Shells.ShellEccentricity.GetDefault();
            if (!DA.GetData(3, ref eccentricity))
            {
                // pass
            }

            FemDesign.Shells.ShellOrthotropy orthotropy = FemDesign.Shells.ShellOrthotropy.GetDefault();
            if (!DA.GetData(4, ref orthotropy))
            {
                // pass
            }

            FemDesign.Shells.EdgeConnection edgeConnection = FemDesign.Shells.EdgeConnection.GetRigid();
            if (!DA.GetData(5, ref edgeConnection))
            {
                // pass
            }

            Rhino.Geometry.Vector3d x = Vector3d.Zero;
            if (!DA.GetData(6, ref x))
            {
                // pass
            }

            Rhino.Geometry.Vector3d z = Vector3d.Zero;
            if (!DA.GetData(7, ref z))
            {
                // pass
            }

            string identifier = "P";

            if (!DA.GetData(8, ref identifier))
            {
                // pass
            }

            if (surface == null || material == null || eccentricity == null || orthotropy == null || edgeConnection == null || identifier == null)
            {
                return;
            }

            //
            FemDesign.Geometry.Region region = surface.FromRhino();

            //
            List <FemDesign.Shells.Thickness> thicknessObj = new List <FemDesign.Shells.Thickness>();

            thicknessObj.Add(new FemDesign.Shells.Thickness(region.CoordinateSystem.Origin, thickness));

            //
            FemDesign.Shells.Slab obj = FemDesign.Shells.Slab.Plate(identifier, material, region, edgeConnection, eccentricity, orthotropy, thicknessObj);

            // set local x-axis
            if (!x.Equals(Vector3d.Zero))
            {
                obj.SlabPart.LocalX = x.FromRhino();
            }

            // set local z-axis
            if (!z.Equals(Vector3d.Zero))
            {
                obj.SlabPart.LocalZ = z.FromRhino();
            }

            // return
            DA.SetData(0, obj);
        }
Esempio n. 6
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            // get input

            Brep surface = null;

            if (!DA.GetData(0, ref surface))
            {
                return;
            }

            List <FemDesign.Shells.Thickness> thickness = new List <FemDesign.Shells.Thickness>();

            if (!DA.GetDataList(1, thickness))
            {
                return;
            }

            FemDesign.Materials.Material material = null;
            if (!DA.GetData(2, ref material))
            {
                return;
            }

            FemDesign.Shells.ShellEccentricity eccentricity = FemDesign.Shells.ShellEccentricity.GetDefault();
            if (!DA.GetData(3, ref eccentricity))
            {
                // pass
            }

            FemDesign.Shells.ShellOrthotropy orthotropy = FemDesign.Shells.ShellOrthotropy.GetDefault();
            if (!DA.GetData(4, ref orthotropy))
            {
                // pass
            }

            FemDesign.Shells.EdgeConnection edgeConnection = FemDesign.Shells.EdgeConnection.GetRigid();
            if (!DA.GetData(5, ref edgeConnection))
            {
                // pass
            }

            Rhino.Geometry.Vector3d x = Vector3d.Zero;
            if (!DA.GetData(6, ref x))
            {
                // pass
            }

            Rhino.Geometry.Vector3d z = Vector3d.Zero;
            if (!DA.GetData(7, ref z))
            {
                // pass
            }

            string identifier = "W";

            if (!DA.GetData(8, ref identifier))
            {
                // pass
            }
            if (surface == null || thickness == null || material == null || eccentricity == null || orthotropy == null || edgeConnection == null)
            {
                return;
            }
            if (thickness.Count != 2)
            {
                throw new System.ArgumentException("Thickness must contain exactly 2 items.");
            }

            // convert geometry
            FemDesign.Geometry.Region region = surface.FromRhino();

            //
            FemDesign.Shells.Slab obj = FemDesign.Shells.Slab.Wall(identifier, material, region, edgeConnection, eccentricity, orthotropy, thickness);

            // set local x-axis
            if (!x.Equals(Vector3d.Zero))
            {
                obj.SlabPart.LocalX = x.FromRhino();
            }

            // set local z-axis
            if (!z.Equals(Vector3d.Zero))
            {
                obj.SlabPart.LocalZ = z.FromRhino();
            }

            // return
            DA.SetData(0, obj);
        }