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

19/09/2013

Как сохранить объемную форму в файл

Вопрос: Как можно сохранить объемную форму в файл?

Я попробовал поискать соответствующие методы в API, но безуспешно.

Мне не нужно сохранить элемент целиком. Объект, который мне нужно сохранить - Autodesk.Revit.DB.Solid, является результатом булевой операции метода BooleanOperationsUtils.ExecuteBooleanOperation.

Ответ: Можно попробовать вот такой способ:

  • Создать новое семейство
  • Экспортировать 3D – вид в SAT file

Вот ссылки из примеров Revit SDK, демонстрирующие как можно это сделать.

Чтоб создать новое семейство, можно воспользоваться методом Application.NewFamilyDocument

Код - C#: [Выделить]
  1. FreeFormElement/CS/FreeFormElementUtils.cs(66):
  2.  
  3.   Document familyDoc = app.NewFamilyDocument(
  4.     familyTemplate);

Чтобы создать формообразующий элемент в семействе из полученной объемной формы, воспользуйтесь методом FreeFormElement.Create

Код - C#: [Выделить]
  1. FreeFormElement/CS/FreeFormElementUtils.cs(113):
  2.  
  3.   RevitFreeFormElement element = Autodesk.Revit.DB
  4.     .FreeFormElement.Create(familyDoc, block);

Для создания 3D-вида используйте метод  View3D.CreateIsometric  

Код - C#: [Выделить]
  1. GeometryAPI/SlaveSymbolGeometry/CS/SlaveSymbolGeometry.cs(82):
  2.  
  3.   View3D instanceView = View3D.CreateIsometric(
  4.     RevitDoc, View3DId);

Последний шаг – экспорт вида в SAT-file

Код - C#: [Выделить]
  1. ImportExport/CS/Export/ExportSATData.cs(164):
  2.  
  3.   exported = m_activeDoc.Export(m_exportFolder,
  4.     m_exportFileName, viewIds, satExportOptions);

Из Revit можно экспортировать только определенные виды, а не отдельные элементы эли формы. Если формообразующий элемент, полученный из объемной формы, является единственным элементом в семействе, то экспорт 3D-вида имеет тот же эффект что и экспорт отдельной формы.

Я надеюсь, что этот способ окажется вам полезным.

Скачать готовый проект для Visual Studio, демонстрирующий экспорт объемной формы в файл, вы можете по ссылке или на GitHub.

Источник: http://thebuildingcoder.typepad.com/blog/2013/09/how-to-save-a-solid-to-a-file.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=220

Опубликовано 19.09.2013