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); }
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); }