Экспорт изображений

Автор Тема: Экспорт изображений  (Прочитано 2731 раз)

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

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
Экспорт изображений
« : 21-12-2020, 09:24:03 »
Доброго времени суток!
 У меня задача: из легенды   поочередно брать тип, изолировать его и  сохранять картинкой. 
Для одного элемента все срабатывает. Но вот как обратно вернуть видимость всех элементов, чтобы найти  следующий нужный тип. Подскажите пожалуйста.
 
                                           
Код - C# [Выбрать]
  1.     ImageExportOptions BilledeExportOptions_3D_PNG = new ImageExportOptions
  2.                                                 {
  3.                                                     ExportRange = ExportRange.SetOfViews,//Диапазон экспорта, определяющий, какие представления будут экспортированы=Экспортируйте набор представлений (набор в ViewsAndSheets).
  4.                                                     ZoomType = ZoomFitType.FitToPage,//Подогнать весь вид к определенному размеру изображения.
  5.                                                     PixelSize = 2000,//Размер изображения в пикселях в одном направлении. Используется, только если ZoomType равен FitToPage.
  6.                                                     FilePath = sourceFileName,// путь хранения
  7.                                                     FitDirection = FitDirectionType.Horizontal,//Подходящее направление. Используется, только если ZoomType равен FitToPage
  8.                                                     HLRandWFViewsFileType = ImageFileType.PNG,//Тип файла для экспортированных видов HLR и каркаса.
  9.                                                     ShadowViewsFileType = ImageFileType.PNG,//Тип файла для экспортированных теневых видов.
  10.                                                     ImageResolution = ImageResolution.DPI_600,//Разрешение изображения в точках на дюйм.
  11.                                                     ShouldCreateWebSite = false //Следует ли создавать веб-сайт со страницей для каждого экспорта. Используется, только если ExportRange - SetOfViews.
  12.  
  13.                                                
  14.                                                 };
  15.                                                
  16.                                               var elsId = ((from e in els select e.Id).ToList());
  17.                                                     viewLegend.IsolateElementsTemporary(elsId);
  18.                                                      viewLegend.ConvertTemporaryHideIsolateToPermanent();//Преобразуйте все временные скрытые элементы или категории в постоянно скрытые на виде.
  19.                                                     BilledeExportOptions_3D_PNG.SetViewsAndSheets(new List<ElementId>() { viewLegend.Id});//Устанавливает список видов и листов для экспорта
  20.                                                         doc.ExportImage(BilledeExportOptions_3D_PNG);                                                      
  21.                                                         viewLegend.DisableTemporaryViewMode(TemporaryViewMode.TemporaryHideIsolate);//Отключает указанный временный режим просмотра.
  22.                                                         viewLegend.UnhideElements(listElementsId);

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Экспорт изображений
« Ответ #1 : 25-12-2020, 17:54:13 »
Самым простым вариантом с минимумом кода, вероятно, будет следующий.

Для каждого элемента:
1) Открываем группу транзакций
2) Открываем обычную транзакцию
3) Изолируем элемент
4) Коммитим транзакцию
5) Экспортируем картинку
6) Откатываем группу транзакций