//This method will return all the breps in the geometry larges saved in the geometrys of the model. // the return type is tuple where first value is the list of concrete breps and the second value // is a list of steel breps public Tuple <List <Brep>, List <Brep>, List <Brep> > GetGeometryLarges() { List <Brep> concreteBreps = new List <Brep>(); List <Brep> steelBreps = new List <Brep>(); List <Brep> selectedBreps = new List <Brep>(); RhinoObject[] objs = RhinoDoc.ActiveDoc.Objects.FindByUserString("infType", "GeometryLarge", true); foreach (RhinoObject rhinoObject in objs) { Rhino.DocObjects.Custom.UserDataList list = rhinoObject.Attributes.UserData; if (!(list.Find(typeof(GeometryLarge)) is GeometryLarge temp)) { temp = list.Find(typeof(RectangleGeometryLarge)) as GeometryLarge; } if (temp != null && temp.Selected == true) { selectedBreps.Add(temp.BaseBrep); } else if (temp != null && temp.Material.GetType() == typeof(ConcreteMaterial)) { concreteBreps.Add(temp.BaseBrep); } else if (temp != null && temp.Material.GetType() == typeof(SteelMaterial)) { steelBreps.Add(temp.BaseBrep); } } return(new Tuple <List <Brep>, List <Brep>, List <Brep> >(concreteBreps, steelBreps, selectedBreps)); }
public Tuple <List <Brep>, List <Brep> > GetReinforcementBreps() { List <Brep> reinforcement = new List <Brep>(); List <Brep> selected = new List <Brep>(); RhinoObject[] objs = RhinoDoc.ActiveDoc.Objects.FindByUserString("infType", "Reinforcement", true); foreach (RhinoObject rhinoObject in objs) { Rhino.DocObjects.Custom.UserDataList list = rhinoObject.Attributes.UserData; if (list.Find(typeof(Reinforcement)) != null) { Reinforcement tempValue = list.Find(typeof(Reinforcement)) as Reinforcement; if (tempValue != null && tempValue.Selected) { selected.Add(tempValue.BrepGeometry); } else { reinforcement.Add(tempValue.BrepGeometry); } } } return(Tuple.Create(reinforcement, selected)); }
private void dataGridView_Geometry_KeyDown(object sender, KeyEventArgs e) { DataGridView d = (DataGridView)sender; if (e.KeyData == Keys.Delete) { int row = d.SelectedCells[0].RowIndex; string material = (string)d.Rows[row].Cells[1].Value; int no = (int)d.Rows[row].Cells[0].Value; if (material == "Reinforcement") { RhinoObject[] objs = RhinoDoc.ActiveDoc.Objects.FindByUserString("infType", "Reinforcement", true); foreach (RhinoObject rhinoObject in objs) { Rhino.DocObjects.Custom.UserDataList list = rhinoObject.Attributes.UserData; Reinforcement tempReinf = list.Find(typeof(Reinforcement)) as Reinforcement; if (tempReinf.Id == no) { list.Remove(tempReinf); rhinoObject.Attributes.SetUserString("infType", null); _projectPlugIn.CurrentBeam.CrossSec.ReinforementIds.Remove(no); d.Rows.Remove(d.Rows[row]); rhinoObject.Attributes.LayerIndex = 0; rhinoObject.CommitChanges(); } } } else { RhinoObject[] objs = RhinoDoc.ActiveDoc.Objects.FindByUserString("infType", "GeometryLarge", true); foreach (RhinoObject rhinoObject in objs) { Rhino.DocObjects.Custom.UserDataList list = rhinoObject.Attributes.UserData; GeometryLarge tempGeom = list.Find(typeof(GeometryLarge)) as GeometryLarge; if (tempGeom.Id == no) { Layer l = RhinoDoc.ActiveDoc.Layers[rhinoObject.Attributes.LayerIndex]; l.IsLocked = false; l.CommitChanges(); RhinoDoc.ActiveDoc.Objects.Delete(rhinoObject, true); l.IsLocked = true; l.CommitChanges(); list.Remove(tempGeom); _projectPlugIn.CurrentBeam.CrossSec.GeometryLargeIds.Remove(no); d.Rows.Remove(d.Rows[row]); } } } } labelConcreteCover.Text = Math.Round(_projectPlugIn.CurrentBeam.CrossSec.ConcreteCover, 0).ToString(); RhinoDoc.ActiveDoc.Views.Redraw(); }
private void dataGridView_Geometry_CellEnter(object sender, DataGridViewCellEventArgs e) { DataGridView d = (DataGridView)sender; if (d.SelectedCells.Count == 0) { return; } int row = d.SelectedCells[0].RowIndex; string material = (string)d.Rows[row].Cells[1].Value; int no = (int)d.Rows[row].Cells[0].Value; if (material == "Reinforcement") { RhinoObject[] objs = RhinoDoc.ActiveDoc.Objects.FindByUserString("infType", "Reinforcement", true); foreach (RhinoObject rhinoObject in objs) { Rhino.DocObjects.Custom.UserDataList list = rhinoObject.Attributes.UserData; Reinforcement tempReinf = list.Find(typeof(Reinforcement)) as Reinforcement; if (tempReinf.Id == no) { tempReinf.Selected = true; RhinoDoc.ActiveDoc.Views.Redraw(); return; } } } else { RhinoObject[] objs = RhinoDoc.ActiveDoc.Objects.FindByUserString("infType", "GeometryLarge", true); foreach (RhinoObject rhinoObject in objs) { Rhino.DocObjects.Custom.UserDataList list = rhinoObject.Attributes.UserData; GeometryLarge tempGeom = list.Find(typeof(GeometryLarge)) as GeometryLarge; if (tempGeom.Id == no) { tempGeom.Selected = true; RhinoDoc.ActiveDoc.Views.Redraw(); return; } } } RhinoDoc.ActiveDoc.Views.Redraw(); }
/// <summary> /// Create new UserDataListEnumerator /// </summary> /// <param name="udl">UserDataList to enumerate</param> /// <since>6.0</since> public UserDataListEnumerator(UserDataList udl) { _udl = udl; }