// extract all information from the beginning private void startANewSessionToolStripMenuItem_Click(object sender1, EventArgs e1) { if (null == Form) { Form = new PCCDInfoSetup_New(doc); Form.FormClosed += OnFormClosed2; this.Close(); Form.Show(RhinoApp.MainWindow()); //Form.Show(); } }
public static void DisplayNodeGroups(RhinoDoc doc, Layer Old_Layer, List <List <int> > NodeGroups, int Mode, out List <RhinoObject> NewRhObjs, out List <Color> colorSet, out Layer New_Layer) { Random rnd = new Random(); ObjectAttributes attributes; RhinoObject obj; NewRhObjs = new List <RhinoObject>(); List <Vector3d> vectors = new List <Vector3d>(); New_Layer = new Layer(); colorSet = new List <Color>(); int NumOfGroups = NodeGroups.Count; Color color; //List<RhinoObject> rhObjList = new List<RhinoObject>(); // find object list by layer //rhObjList = doc.Objects.FindByLayer(Old_Layer).ToList(); // add a new layer if (Mode == 0) // display modules { New_Layer.Name = "Module info"; } else if (Mode == 1 || Mode == 2) // dispaly node group result without R3 { New_Layer.Name = "Result"; } else { // display R3 result New_Layer.Name = "Result_R3"; } doc.Layers.Add(New_Layer); New_Layer.LayerIndex = doc.Layers.FindByFullPath(New_Layer.Name, true); doc.Layers.SetCurrentLayerIndex(New_Layer.LayerIndex, true); // PCCDInfoSetup_New.CopyObjects(doc, Old_Layer, New_Layer, out rhObjList); PCCDInfoSetup_New.ExplodeView(doc, Old_Layer, New_Layer, out NewRhObjs);; New_Layer.CommitChanges(); //rhObjList = doc.Objects.FindByLayer(New_Layer).ToList(); for (int i = 0; i < NumOfGroups; i++) { int x = 0; if (NodeGroups[i].Count > 1) { // make sure color does not exist while (true) { color = Color.FromArgb(rnd.Next(0, 255), rnd.Next(0, 255), rnd.Next(0, 255)); for (int j = 0; j < colorSet.Count; j++) { if (color == colorSet[j]) { x = 1; } } if (x == 0) { break; } } for (int j = 0; j < NodeGroups[i].Count; j++) { obj = NewRhObjs[NodeGroups[i].ElementAt(j) - 1]; // attributes = obj.Attributes; //attributes.ColorSource = (ObjectColorSource)1; obj.Attributes.ObjectColor = color; obj.CommitChanges(); } colorSet.Add(color); } else { obj = NewRhObjs[NodeGroups[i].ElementAt(0) - 1]; colorSet.Add(obj.Attributes.ObjectColor); } } Old_Layer.IsVisible = false; Old_Layer.CommitChanges(); // doc.Views.Redraw(); }