示例#1
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            int  unit = 0;
            Box  box  = new Box();
            bool run  = false;

            DA.GetData(0, ref unit);
            DA.GetData(1, ref box);
            DA.GetData(2, ref run);

            Point3d[] verices = box.GetCorners();
            Point3d   min     = verices[0];
            Point3d   max     = verices[0];

            foreach (Point3d item in verices)
            {
                if (item.X < min.X || item.Y < min.Y || item.Z < min.Z)
                {
                    min = item;
                }
                if (item.X > max.X || item.Y > max.Y || item.Z > max.Z)
                {
                    max = item;
                }
            }

            FD_Range range = new FD_Range(unit, max.X - min.X, max.Y - min.Y, max.Z - min.Z, min.X, min.Y, min.Z);

            string values = "Unit: " + range.Unit.ToString() + Environment.NewLine;

            values += "Width: " + range.Width.ToString() + Environment.NewLine;
            values += "Deepth: " + range.Deepth.ToString() + Environment.NewLine;
            values += "Height: " + range.Height.ToString() + Environment.NewLine;
            values += "Offset_X: " + range.Offset_X.ToString() + Environment.NewLine;
            values += "Offset_Y: " + range.Offset_Y.ToString() + Environment.NewLine;
            values += "Offset_Z: " + range.Offset_Z.ToString();

            DA.SetData(0, range);
            DA.SetData(1, values);

            if (run)
            {
                range.Update();
            }
        }