Обновление данных вида сечения

Автор Тема: Обновление данных вида сечения  (Прочитано 6641 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Павел55Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 106
  • Карма: 3
Подскажите пожалуйста как обновить данные на виде сечения после того как обновились данные поверхности? Заметил что данные на виде сечения обновляются если перестроить поверхность вручную (в области инструментов), но если сделать тоже самое программно (метод Rebuild()) то ничего не происходит. Может быть у кого то есть примеры кода или хотя бы направление куда копать.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Обновление данных вида сечения
« Ответ #1 : 24-10-2022, 20:56:14 »
Данные - это имеется в виду строки данных на виде сечения?
У меня была такая проблема с видом профиля с данными по осям сечения. Помогал вот такой вот метод:
Код - C# [Выбрать]
  1.         /// <summary>
  2.         /// Обновление вида профиля
  3.         /// </summary>
  4.         /// <param name="pView">Вид профиля</param>
  5.         public static void Update(this ProfileView pView)
  6.         {
  7.             // "Подёргаем" вид профиля
  8.             var startElevMode = pView.ElevationRangeMode;
  9.             double startMinElev = pView.ElevationMin,
  10.                 startMaxElev = pView.ElevationMax;
  11.  
  12.             pView.ElevationRangeMode = ElevationRangeType.UserSpecified;
  13.             pView.ElevationMax += 1;
  14.  
  15.             pView.ElevationMax = startMaxElev;
  16.             pView.ElevationMin = startMinElev;
  17.             pView.ElevationRangeMode = startElevMode;
  18.  
  19.             // "Подёргаем" область данных
  20.             var pViewBandItems = pView.Bands.GetBottomBandItems();
  21.             pView.Bands.SetBottomBandItems(pViewBandItems);
  22.  
  23.             // "Подёргаем" стиль вида профиля
  24.             using var pViewStyle
  25.                 = pView.StyleId.SafeOpen<ProfileViewStyle>(OpenMode.ForWrite);
  26.             var oldClipGrid = pViewStyle.GridStyle.VerticalGridOptions.UseClipGrid;
  27.             pViewStyle.GridStyle.VerticalGridOptions.UseClipGrid = !oldClipGrid;
  28.             pViewStyle.GridStyle.VerticalGridOptions.UseClipGrid = oldClipGrid;
  29.         }
Можно попробовать что-то такое же и для вида сечения.

Отмечено как Решение Павел55 27-12-2022, 19:51:18

Оффлайн Павел55Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 106
  • Карма: 3
Re: Обновление данных вида сечения
« Ответ #2 : 27-12-2022, 19:51:15 »
Решение для видов сечений - в отдельной транзакции создавать снимок поверхности перед редактированием поверхности: CreateSnapshot();