Как сохранить объемную форму в файл
Вопрос: Как можно сохранить объемную форму в файл?
Я попробовал поискать соответствующие методы в API, но безуспешно.
Мне не нужно сохранить элемент целиком. Объект, который мне нужно сохранить - Autodesk.Revit.DB.Solid, является результатом булевой операции метода BooleanOperationsUtils.ExecuteBooleanOperation.
Ответ: Можно попробовать вот такой способ:
- Создать новое семейство
- Экспортировать 3D – вид в SAT file
Вот ссылки из примеров Revit SDK, демонстрирующие как можно это сделать.
Чтоб создать новое семейство, можно воспользоваться методом Application.NewFamilyDocument
- FreeFormElement/CS/FreeFormElementUtils.cs(66):
- Document familyDoc = app.NewFamilyDocument(
- familyTemplate);
Чтобы создать формообразующий элемент в семействе из полученной объемной формы, воспользуйтесь методом FreeFormElement.Create
- FreeFormElement/CS/FreeFormElementUtils.cs(113):
- RevitFreeFormElement element = Autodesk.Revit.DB
- .FreeFormElement.Create(familyDoc, block);
Для создания 3D-вида используйте метод View3D.CreateIsometric
- GeometryAPI/SlaveSymbolGeometry/CS/SlaveSymbolGeometry.cs(82):
- View3D instanceView = View3D.CreateIsometric(
- RevitDoc, View3DId);
Последний шаг – экспорт вида в SAT-file
- ImportExport/CS/Export/ExportSATData.cs(164):
- exported = m_activeDoc.Export(m_exportFolder,
- 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