【问题标题】:Revit Design Automation: Possible to Set IFC Export Setting?Revit Design Automation:可以设置 IFC 导出设置吗?
【发布时间】:2021-09-18 02:34:28
【问题描述】:

我注意到 Model Derivatives 能够使用指定的导出设置名称将 Revit 转换为 IFC。是否可以在设计自动化中做同样的事情? Autodesk 导出器 (Autodesk.IFC.Export.UI) 能够利用保存的导出设置,但它不能用于设计自动化,因为它依赖于 RevitAPIUI。目前,我已经尝试截取部分源代码并将其放入我的插件中,但我想知道是否有更简单的方法来做到这一点。

【问题讨论】:

  • 我试着先理解这个问题。有一个 API:OpenIFCDocument Method (String, IFCImportOptions)(参见revitapidocs.com/2022/84e92ca4-6c6a-af82-454e-1c0b7b145398.htm)。在 Design Automation 的插件中调用这个函数有困难吗?
  • 我正在尝试从 Revit 转换为 IFC。存储在我的 Revit 文件中的是由 Revit IFC 导出器 (github.com/Autodesk/revit-ifc) 管理的“导出设置”。导出器使用 UI 库,因此它不适用于设计自动化。是否有无需使用 UI 库即可访问这些导出设置的 API?

标签: autodesk-forge autodesk-designautomation


【解决方案1】:

更新:

为 Revit DA 迁移的 Revit 插件:https://github.com/yiskang/forge-revit-ifc-exporter-appbundle

===========

不幸的是,恐怕它不是 Revit DA 内置的,因为它们来自 Autodesk/revit-ifc

但您可以将 IFCExportConfigurationsMap.csIFCExportConfiguration.csEnums 移植到您自己的 Revit 插件中。

使用示例:

var configurationsMap = new IFCExportConfigurationsMap();
//configurationsMap.Add(IFCExportConfiguration.GetInSession());
configurationsMap.AddBuiltInConfigurations();
configurationsMap.AddSavedConfigurations();

var selectedConfig = configurationsMap["IFC2x3 Coordination View 2.0"];
var exportOptions = new IFCExportOptions();

ElementId activeViewId = document.ActiveView.Id;
selectedConfig.ActiveViewId = selectedConfig.UseActiveViewGeometry ? activeViewId.IntegerValue : -1;
selectedConfig.UpdateOptions(exportOptions, activeViewId);

bool result = document.Export(path, fileName, exportOptions);

参考:

【讨论】:

  • 谢谢!这非常有用。
猜你喜欢
  • 2022-11-08
  • 2019-12-26
  • 2019-12-25
  • 1970-01-01
  • 2018-07-06
  • 2020-08-06
  • 2019-08-07
  • 2018-11-13
  • 2019-10-17
相关资源
最近更新 更多