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

ADN Club => Civil 3D API => Тема начата: Павел55 от 23-10-2022, 19:37:23

Название: Обновление данных вида сечения
Отправлено: Павел55 от 23-10-2022, 19:37:23
Подскажите пожалуйста как обновить данные на виде сечения после того как обновились данные поверхности? Заметил что данные на виде сечения обновляются если перестроить поверхность вручную (в области инструментов), но если сделать тоже самое программно (метод Rebuild()) то ничего не происходит. Может быть у кого то есть примеры кода или хотя бы направление куда копать.
Название: Re: Обновление данных вида сечения
Отправлено: Дмитрий Загорулькин от 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.         }
Можно попробовать что-то такое же и для вида сечения.
Название: Re: Обновление данных вида сечения
Отправлено: Павел55 от 27-12-2022, 19:51:15
Решение для видов сечений - в отдельной транзакции создавать снимок поверхности перед редактированием поверхности: CreateSnapshot();