接上一篇
https://blog.csdn.net/qq_29143307/article/details/116236773
在实际开发过程中,循环使用的功能,必然伴随对revit窗口中构件的操作,所以需要将功能窗口放置再revit窗口的角点位置,四个点中,左上角时最容易实现的,不需要进行计算(坐标系的特性),比如如果想放置再右上角角点,计算到右上角点坐标后,还需要减去功能窗口的宽度,才能得到功能窗口放置的坐标。
所以以左上角点为例:
首先需要得到revit当前的活动窗口,通过接口得到坐标点
源码:
Autodesk.Revit.DB.View activeView = uiapp.ActiveUIDocument.ActiveView;
if (activeView != null)
{
IList<UIView> allUiViews = uiapp.ActiveUIDocument.GetOpenUIViews();
foreach (var uiview in allUiViews)
{
if (uiview.ViewId == activeView.Id)
{
var viewRect = uiview.GetWindowRectangle();
var iLeft = viewRect.Left;
var iTop = viewRect.Top;
this.Location = new Point(iLeft, iTop);
break;
}
}
}
效果:
当然,其他位置点也可以通过相同原理计算得到。
下一篇介绍一个功能支持不同选择模式。
欢迎加入我的QQ群,一起探讨Revit二次开发技术!
QQ群:631436766