在 Revit 插件 .net dll 中列出可用的 BIM 360 项目,然后打开可用的 BIM 360 模型

时间:2021-03-16 05:42:46

标签: autodesk-forge revit-api

在我的 Revit 插件中,我想编写一个可以打开多个 BIM 360 模型的命令。我每天早上要在一个项目中同时打开 10 个模型。我有一个命令可以从一个网络位置打开多个模型。但是我想编写一个类似的命令来打开云模型。它将为我节省大量时间。当我煮咖啡时,它们都可以打开。

  1. 使用 .net 如何获取可用项目的列表,以便在我可以创建的新对话框中使用。
  2. 选择项目后,获取要打开的可用模型列表。
  3. 在 Revit 中打开模型。

如果有浏览器对话框解决方案,肯定会更好,但请在 Revit 中简单地列出和打开模型。

        Dim OpenOptions As New OpenOptions
        Dim ModelPath As ModelPath = ModelPathUtils.ConvertCloudGUIDsToCloudPath(ModelPathUtils.CloudRegionEMEA, projectGuid, modelGuid)
        commandData.Application.OpenAndActivateDocument(ModelPath, OpenOptions, False)

谢谢

1 个答案:

答案 0 :(得分:1)

这两个主题过去曾在这里讨论过,例如, 在listing model files in BIM360 through data management API。 您可以通过搜索找到更多相关讨论,例如, 对于“list bim360”。

这些解决方案是基于云的,因此无法使用纯 Windows 桌面 Revit .NET API 解决它们。 因此,您自己建议的基于浏览器的方法可能是列出可用模型的第一步的良好起点。

第二步是在确定路径后在 Revit 中打开 BIM360 模型。

去年 5 月,The Building Coder 在注释中解决了这个问题 在locally opening RVT file managed by BIM360, 在问题中的 StackOverflow 上 关于如何open Revit BIM360 model via command line。不过,这方面的情况在不断变化,并且可能从那时起发生了变化。

目前最安全的方法是使用基于网络的 Forge API。

支持直接在桌面 Revit 中打开 BIM360 托管模型的原生 Revit API 功能正在开发中,但恐怕还没有准备好。

以下是我尚未编辑和发布的之前相关对话的一些笔记:

处理 BIM360 模型:

问题:BIM M360 和 Revit 问题一样多: 我正在使用 pyRevit/Python 编写一些 Revit 桌面插件,并尝试自动链接 BIM360 中的 Revit 文件。 例如,我希望能够从一个 BIM360 项目中打开一个文件并将其复制到另一个 BIM360 项目(包括所有链接的文件),然后重新路径复制模型中的所有链接以从中读取新项目。 我也在关注许多其他互动,但这是目前最大的障碍。 我们正在使用 Revit 2019,并着眼于 2020 年,如果这有助于深入了解事情的本质。

回答:这里讨论了您解决的任务的一小部分, 在opening a BIM360 model via the desktop command line and the Revit API。 也许同样的方法也可以用于处理链接。

退一步说,你的目标是什么类型的 Revit 文件?

Revit 模型可以通过三种方式存储在 BIM360 中:

  • Revit 云工作共享
  • 基于文件并直接上传到 BIM 360
  • 桌面连接器

广告 1:没有可访问 #1 的 API。您可以使用 forge API 发布到 BIM 360。但是目前不能通过api设置相同的环境。

广告2:可以使用forge API上传下载。

广告 3:没有桌面连接器 API,但我相信您可以使用普通的 Windows API 来复制文件夹中的文件。

我们可能还需要做一些研究。 但是有些东西我们需要一一单独研究。 你能澄清一下吗?

回复:我想我正在使用基于上述 #1 的模型,尽管我不能 100% 确定我的术语是否正确。 本质上,我们将我们的文件托管在 BIM360(旧的 C4R 做事方式,不管现在叫什么)上,并通过 Revit 上传工作共享模型。 然后我们从那里与它进行交互。 我有一种感觉,这种描述可能会使事情更加混乱,但希望不会。 从广义上讲,我们的想法是在某处的云服务器上建立一个包含建筑物(RVT 文件)的“库”。 然后我们会有一个界面,允许用户选择这些库片段的各种配置,该工具会将这些片段复制到一个新项目中,并根据工具中内置的一些规则自动将它们链接在一起。 我们在我们自己的内部服务器上有一个用于工作共享模型的工具的工作版本,但我们更喜欢它在云中 - 特别是 Autodesk 云服务,因为它们旨在处理 Revit 文件。 不确定这是否让事情变得更清晰,或者更混乱。

您可能还想学习 Eason Kang 在 BIM360 Docs: Setting up external references between files (Upload Linked Files) 上的文章。

最后,总结一下,完整的工作示例实现 desktop app to view models on hubs (BIM 360 or Fusion Team) 可能 立即满足您的大部分要求。

相关问题