UIView.ZoomAndCenterRectangle()仅在两次调用时才能正确运行

时间:2019-10-16 19:13:43

标签: c# revit-api revit

在调用UIView.ZoomAndCenterRectangle()方法时,在Revit 2018.2中遇到了一些奇怪的行为。场景是我刚刚使用3DView.CreateIsometric()创建了一个新的3D视图,并且还将该3DView设置为UIDocument的ActiveView。执行这些操作后,只调用一次UIView.ZoomAndCenterRectangle()似乎根本不起作用。但是,如果在第一次之后第二次调用它,则视图会正确缩放!

我最初的想法是,第一次ZoomAndCenter调用可能已经占用了足够的时间来使3DView完全生成并开始接收调用,尽管这似乎不太可能,因为我觉得Revit外部命令完全同步运行。无论如何,我尝试了以下代码,这导致了500ms的明显延迟:

int val = 0;
for(int i = 0; i < 500000000; i++)
{
    val += i;
}

uiView.ZoomAndCenterRectangle(max, min);
//uiView.ZoomAndCenterRectangle(max, min);

但是那仍然没有用...所以似乎出于某种奇怪的原因,您实际上必须运行两次调用才能执行:

uiView.ZoomAndCenterRectangle(max, min);
uiView.ZoomAndCenterRectangle(max, min);

我错过了什么!!!

1 个答案:

答案 0 :(得分:0)

也许这只是某种再生问题。我最近设置了一个视图方向,直到我forced a refresh of the current view之前都没有发现任何不同。也许您也可以做类似的事情。另外,对我来说,如果两次调用该方法都可行,那听起来也可以。