示例#1
0
        public static Section Define(List <Autodesk.DesignScript.Geometry.Surface> surfaces, string name, string materialType, string groupName, string typeName, string sizeName)
        {
            // check if string input is null
            if (name == null || materialType == null || groupName == null || typeName == null || sizeName == null)
            {
                throw new System.ArgumentException($"Some input is null. name: {name}, materialType: {materialType}, groupName: {groupName}, typeName: {typeName}, sizeName: {sizeName}");
            }

            // convert geometry
            List <Geometry.Region> regions = new List <Geometry.Region>();

            foreach (Autodesk.DesignScript.Geometry.Surface surface in surfaces)
            {
                regions.Add(Geometry.Region.FromDynamo(surface));
            }

            // create regions group
            Geometry.RegionGroup regionGroup = new Geometry.RegionGroup(regions);

            // get mat type
            FemDesign.Materials.MaterialTypeEnum matTypeEnum = (FemDesign.Materials.MaterialTypeEnum)Enum.Parse(typeof(FemDesign.Materials.MaterialTypeEnum), materialType);

            // create section
            Sections.Section section = new Sections.Section(regionGroup, name, "custom", matTypeEnum, groupName, typeName, sizeName);

            // return
            return(section);
        }
示例#2
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            List <Rhino.Geometry.Brep> breps = new List <Rhino.Geometry.Brep>();

            if (!DA.GetDataList(0, breps))
            {
                return;
            }

            string name = null;

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

            string matType = null;

            if (!DA.GetData(2, ref matType))
            {
                return;
            }

            string groupName = null;

            if (!DA.GetData(3, ref groupName))
            {
                return;
            }

            string typeName = null;

            if (!DA.GetData(4, ref typeName))
            {
                return;
            }

            string sizeName = null;

            if (!DA.GetData(5, ref sizeName))
            {
                return;
            }

            if (name == null || matType == null || groupName == null || typeName == null || sizeName == null)
            {
                return;
            }

            // convert geometry
            List <FemDesign.Geometry.Region> regions = new List <FemDesign.Geometry.Region>();

            foreach (Rhino.Geometry.Brep brep in breps)
            {
                regions.Add(brep.FromRhino());
            }

            // create region group
            FemDesign.Geometry.RegionGroup regionGroup = new FemDesign.Geometry.RegionGroup(regions);

            // get mat type
            FemDesign.Materials.MaterialTypeEnum matTypeEnum = (FemDesign.Materials.MaterialTypeEnum)Enum.Parse(typeof(FemDesign.Materials.MaterialTypeEnum), matType);

            // create section
            FemDesign.Sections.Section section = new FemDesign.Sections.Section(regionGroup, name, "custom", matTypeEnum, groupName, typeName, sizeName);

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