/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { GH_Structure <GH_Point> TempPtsTree = new GH_Structure <GH_Point>(); Point3d StartPt = Point3d.Origin; double ExtendX = default(double), ExtendY = default(double); int TotalNum = default(int), ColumnNum = default(int); if (!DA.GetData(0, ref StartPt)) { return; } if (!DA.GetData(1, ref ExtendX)) { return; } if (!DA.GetData(2, ref ExtendY)) { return; } if (!DA.GetData(3, ref TotalNum)) { return; } if (!DA.GetData(4, ref ColumnNum)) { return; } double StartX = StartPt.X, StartY = StartPt.Y, StartZ = StartPt.Z, CurrentY = 0; double RowNum = TotalNum / ColumnNum; int TotalColumn = Convert.ToInt32((TotalNum % ColumnNum == 0) ? RowNum : (RowNum + 1)); for (int Column = 0; Column < TotalColumn; Column++) { List <GH_Point> TempList = new List <GH_Point>(); int leftNum = TotalNum - Column * ColumnNum; ColumnNum = leftNum < ColumnNum ? leftNum: ColumnNum; CurrentY = StartY; for (int j = 0; j < ColumnNum; j++) { Point3d Temp_Pt = new Point3d(StartX, CurrentY, StartZ); TempList.Add(new GH_Point(Temp_Pt)); CurrentY += ExtendY; } TempPtsTree.AppendRange(TempList, new GH_Path(Column)); StartX += ExtendX; } TempPtsTree.Flatten(); DA.SetDataList(0, TempPtsTree); }
protected override void SolveInstance(IGH_DataAccess DA) { bool run = false; DA.GetData(2, ref run); if (run) { List <FD_Group> FD_G_list = new List <FD_Group>(); GH_Structure <GH_String> undelete = new GH_Structure <GH_String>(); DA.GetDataList(0, FD_G_list); DA.GetDataTree(1, out undelete); undelete.Flatten(); FD_Commander.Select(); foreach (GH_String item in undelete.Branches[0]) { FD_Commander.Unselect(item.ToString()); } FD_Commander.Delete(); int counter = 0; ids = new GH_Structure <GH_String>(); foreach (FD_Group item in FD_G_list) { GH_Path path = new GH_Path(counter); item.Create_Set(); foreach (FD_Object sub_item in item.Members) { ids.Append(new GH_String(sub_item.ID), path); } counter++; } Message = "Done"; DA.SetData(0, Message); } DA.SetDataTree(1, ids); }
protected override void SolveInstance(IGH_DataAccess DA) { GH_Structure <GH_Integer> id_tree = new GH_Structure <GH_Integer>(); DA.GetDataTree(0, out id_tree); id_tree.Flatten(); List <string> ids = new List <string>(); foreach (GH_Integer id in id_tree.Branches[0]) { ids.Add(id.ToString()); } Tools.ids_in_loop = ids; }
public GH_Structure <GH_Number> DataTree() { GH_Structure <GH_Number> dataTree = new GH_Structure <GH_Number>(); GH_Structure <GH_Integer> indices = new GH_Structure <GH_Integer>(); for (int i = 0; i < trainedVectors.GetLength(0); i++) { GH_Path p = new GH_Path(Utils.ReverseArray(this.adressBook[i])); indices.Append(new GH_Integer(i), p); } indices.Flatten(); dataTree = new GH_Structure <GH_Number>(); GH_Structure <GH_Number> valueTree = Utils.MultidimensionalArrayToGHTree(trainedVectors); for (int i = 0; i < indices.DataCount; i++) { dataTree.AppendRange(valueTree.Branches[indices.Branches[0][i].Value], new GH_Path(this.adressBook[i])); } return(dataTree); }
protected override void SolveInstance(IGH_DataAccess DA) { Message = "Waiting..."; bool write = false; DA.GetData(5, ref write); if (write) { List <FD_Group> FD_G_list = new List <FD_Group>(); GH_Structure <GH_String> undelete = new GH_Structure <GH_String>(); DA.GetDataList(2, FD_G_list); DA.GetDataTree(1, out undelete); undelete.Flatten(); FD_Commander.Select(); foreach (GH_String item in undelete.Branches[0]) { FD_Commander.Unselect(item.ToString()); } FD_Commander.Delete(); ids = new GH_Structure <GH_String>(); int counter = 0; foreach (FD_Group item in FD_G_list) { GH_Path path = new GH_Path(counter); item.Create_Set(); foreach (FD_Object sub_item in item.Members) { ids.Append(new GH_String(sub_item.ID), path); } counter++; } List <FD_Setting> setlist = new List <FD_Setting>(); DA.GetDataList(0, setlist); foreach (FD_Setting set in setlist) { set.Update(); } Message = "Ready"; string folder = ""; string file = ""; DA.GetData(3, ref folder); DA.GetData(4, ref file); if (folder.Substring(folder.Length - 1, 1) != @"\") { folder += @"\"; } string saveas = "menu file saveas \"" + folder + file + ".fdp\" 0"; string excn = "menu file export cn silent \"" + folder + file + ".cn\""; FD_Commander.Excute(saveas); FD_Commander.Excute(excn); Message = "Done"; DA.SetData(1, Message); } DA.SetDataTree(0, ids); }
protected override void SolveInstance(IGH_DataAccess DA) { Message = "Waiting..."; bool write = false; DA.GetData(3, ref write); if (write) { List <FD_Group> FD_G_list = new List <FD_Group>(); GH_Structure <GH_String> undelete = new GH_Structure <GH_String>(); DA.GetDataList(2, FD_G_list); DA.GetDataTree(1, out undelete); undelete.Flatten(); FD_Commander.Select(); foreach (GH_String item in undelete.Branches[0]) { FD_Commander.Unselect(item.ToString()); } FD_Commander.Delete(); ids = new GH_Structure <GH_String>(); int counter = 0; foreach (FD_Group item in FD_G_list) { GH_Path path = new GH_Path(counter); item.Create_Set(); foreach (FD_Object sub_item in item.Members) { ids.Append(new GH_String(sub_item.ID), path); } counter++; } List <FD_Setting> setlist = new List <FD_Setting>(); DA.GetDataList(0, setlist); foreach (FD_Setting set in setlist) { set.Update(); } Message = "Ready"; DA.SetData(1, Message); } DA.SetDataTree(0, ids); bool run = false; DA.GetData(4, ref run); if (run) { FD_Commander.Excute("menu analysis forward"); Message = "Done"; } }