コード例 #1
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object can be used to retrieve data from input parameters and
        /// to store data in output parameters.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            var inBreps = new List <GH_Brep>();

            if (!DA.GetDataList(0, inBreps))
            {
                return;
            }
            var HBObjects = PyBase.CallFromHBHive(inBreps);

            var HBNames  = new List <string>();
            var HBTypes  = new List <HBType>();
            var SrfBreps = new List <Brep>();

            var points = new List <Point3d>();

            foreach (var item in HBObjects)
            {
                var wufiModel = new WufiModel(item);
                //points = item.Surfaces.First().ExtractPoints(true);
                points.AddRange(wufiModel.Vertices);
                //SrfBreps.AddRange(item.Surfaces.Select(_ => _.Geometry));
                //HBNames.Add(item.Name);
                //HBTypes.Add(item.ObjectType);
            }


            DA.SetDataList(2, points);
            //DA.SetData(1, HBTypes);
            //DA.SetDataList(2, SrfBreps);
        }
コード例 #2
0
        public static List <HBZone> CallFromHBHive(List <GH_Brep> inBreps)
        {
            var HBIDs = new List <string>();

            foreach (var item in inBreps)
            {
                //todo: if null
                //todo: check if HBID existed
                var HBID = item.Value.UserDictionary["HBID"] as string;
                //string formatedHBID = string.Format("['{0}']['{1}']", HBID[0], HBID[1]);
                HBIDs.Add(HBID);
            }

            var PyHBObjects = PyBase.GetHBObjects(HBIDs);

            var HBZones = new List <HBZone>();
            //todo: for later use
            var HBSurfaces = new List <HBSurface>();

            foreach (var item in PyHBObjects)
            {
                var hbType = PyBase.GetHBType(item);
                if (hbType == HBType.HBZone)
                {
                    HBZones.Add(new HBZone(item));
                }
                else if (hbType == HBType.HBSurface)
                {
                    HBSurfaces.Add(new HBSurface(item));
                }
                else
                {
                    //non hbObject
                }
            }
            return(HBZones);
        }