UIView.ZoomAndCenterRectangle()仅在被调用两次时才能正常工作

问题描述 投票:0回答:1

我在调用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);

我想念东西吗?

我在调用UIView.ZoomAndCenterRectangle()方法时在Revit 2018.2中遇到了一些奇怪的行为。场景是我刚刚使用3DView.CreateIsometric()创建了一个新的3D视图,并具有...

c# revit-api revit
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.