Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Александр Пекшев aka Modis от 14-02-2018, 12:46:56

Название: Обновление диспетчера проекта
Отправлено: Александр Пекшев aka Modis от 14-02-2018, 12:46:56
Всем привет. Столкнулся сегодня с очень забавным поведением. Небольшой метод перенумеровывает листы. Все работает отлично (у листов меняется номер), кроме одной важной мелочи - в диспетчере проекта не меняются номера листов! Точнее - просто не обновляется представление диспетчера.
Кто-нибудь с подобным сталкивался?
Название: Re: Обновление диспетчера проекта
Отправлено: Александр Пекшев aka Modis от 14-02-2018, 12:49:51
Пока-что придумал вот такой "костыль"
Код - C# [Выбрать]
  1. ViewSheet v = ViewSheet.Create(doc, new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_TitleBlocks).FirstElementId());
  2. doc.Delete(v.Id);
Название: Re: Обновление диспетчера проекта
Отправлено: Александр Ривилис от 14-02-2018, 23:55:15
Это не оно: https://forums.autodesk.com/t5/revit-api-forum/refresh-projectbrowser-after-renaming-sheetnumber/td-p/6664487 ?
Похоже лучшее решение такое:
Код - C# [Выбрать]
  1. DockablePaneId dpId = DockablePanes.BuiltInDockablePanes.ProjectBrowser;
  2. DockablePane pB = new DockablePane(dpId);
  3. pB.Hide();
  4.  
  5. // Здесь переименовываем
  6.  
  7. pB.Show();
Специального API  для обновления диспетчера проекта нет, как следует из той темы.
Название: Re: Обновление диспетчера проекта
Отправлено: Александр Пекшев aka Modis от 15-02-2018, 11:55:54
Это не оно:
Да, это оно. Я искал, но на эту тему не попадал.
Ну да ладно. Опять же там подтвердили, что в API нет методов обновления браузера. Однако, я не сказал бы, что предложенный там вариант "лучший". Например, мой вариант также прекрасно работает, но занимает всего две строчки =)