UIView.ZoomAndCenterRectangle () работает правильно только при двойном вызове - PullRequest
0 голосов
/ 16 октября 2019

Я столкнулся с некоторым странным поведением в Revit 2018.2 при вызове метода UIView.ZoomAndCenterRectangle (). Сценарий состоит в том, что я только что создал новый трехмерный вид с помощью 3DView.CreateIsometric (), а также установил этот 3DView в качестве ActiveView UIDocument. После этих действий вызов UIView.ZoomAndCenterRectangle () только один раз, похоже, не работает вообще. Однако, если вызов выполняется второй раз сразу после первого, представление масштабируется должным образом!

Моя первоначальная мысль заключалась в том, что первый вызов ZoomAndCenter мог занимать достаточно времени, чтобы 3DView полностью сгенерировал и началприем вызовов, хотя это кажется маловероятным, поскольку у меня сложилось впечатление, что внешние команды Revit выполняются полностью синхронно. Несмотря на это, я попробовал следующий код, который приводит к ощутимой задержке в 500 мс:

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 голосов
/ 17 октября 2019

Может быть, это просто проблема регенерации. Недавно я установил ориентацию вида и не видел никакой разницы, пока я не принудительно обновил текущий вид . Может быть, вы можете сделать что-то подобное тоже. С другой стороны, если вызов метода работает дважды, для меня это тоже звучит нормально.

...