public void UpdateForm() { var view3D = Uiapp.ActiveUIDocument.ActiveView as Autodesk.Revit.DB.View3D; var uiView = UtilTool.GetActiveUIView(Uiapp); var allGrids = UtilTool.GetAllGrids(Uiapp); if (uiView != null && view3D != null && allGrids.Count > 0) { var corners = uiView.GetZoomCorners().ToList(); var isEnter = true; lock (EnterLock) { if (EnterKeyData != null && EnterKeyData.Item1 == view3D.Id && EnterKeyData.Item2.DistanceTo(corners[0]) < UtilTool.mmToRevit(1) && EnterKeyData.Item3.DistanceTo(corners[1]) < UtilTool.mmToRevit(1)) { isEnter = false; } } if (isEnter) { lock (EnterLock) { EnterKeyData = new Tuple <Autodesk.Revit.DB.ElementId , Autodesk.Revit.DB.XYZ , Autodesk.Revit.DB.XYZ>(view3D.Id, corners[0], corners[1]); } var viewRect = uiView.GetWindowRectangle(); UpdateWindowsPositionAndSize(viewRect); lock (GridLock) { ShowedGrids = UtilTool.GetLocalGrids(allGrids, view3D, corners, viewRect); } this.Refresh(); } else { } } else { lock (GridLock) { ShowedGrids.Clear(); } this.Refresh(); } }
private void AxisForm_Paint(object sender, PaintEventArgs e) { e.Graphics.Clear(this.BackColor); e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; var pointPairStrLList = new List <Tuple <List <PointF>, string> >(); lock (GridLock) { pointPairStrLList.AddRange(ShowedGrids.Select(a => new Tuple <List <PointF>, string>(a.PointFs, a.Name))); } if (pointPairStrLList.Count > 0) { foreach (var pointPairStrList in pointPairStrLList) { if (pointPairStrList.Item1.Count >= 2) { e.Graphics.DrawString(pointPairStrList.Item2, new Font("Verdana", 20), m_SolidBrush, pointPairStrList.Item1.First()); e.Graphics.DrawLines(m_LinePen, pointPairStrList.Item1.ToArray()); e.Graphics.DrawString(pointPairStrList.Item2, new Font("Verdana", 20), m_SolidBrush, pointPairStrList.Item1.Last()); } } } }