首页 > 解决方案 > 如何在 Revit Api 中从 IronPython 中的 Elements ID 制作列表

问题描述

我正在尝试使用 Revit API 中的选定元素 ID 创建一个 python 列表。我尝试在示例结构文件中收集网格的 ID,然后在 Visual Studio Code 中使用此列表。我在 .NET 4.0.30319.42000(64 位)上使用 Revit 2020 和 IronPython 2.7.7(2.7.7.0)。

当我在 IronPython 中运行代码时,我得到了我想要的 ID 列表,但是如何制作打印的 ID 列表以供在 Visual Studio Code 中进一步使用?

附上结果图片

代码截图

我的代码:

from Autodesk.Revit.DB import *
import clr
import math
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')

app = __revit__.Application
doc = __revit__.ActiveUIDocument.Document

transaction = Transaction(doc, "Get grids")
transaction.Start()

new_list = DB.FilteredElementCollector(doc) \
    .OfCategory(DB.BuiltInCategory.OST_Grids) \
    .ToElementIds()

for x in range(len(new_list)):
    new_list[x]
    print(new_list[x])


transaction.Commit()

标签: ironpythonrevit-apirevitpythonshell

解决方案


如果我理解正确,您将获得元素 ID 列表,但需要在逻辑的另一部分或完全单独的脚本中引用该信息。我建议在此操作结束时将此数据保存到文件中,然后在需要数据的任何其他逻辑/脚本中使用该文件。

就个人而言,我更喜欢将数据保存/读取到 JSON 格式。以下是一些可帮助您入门的资源:

  1. 使用 Python 读写 JSON
  2. 如何将 JSON 数据写入文件?
  3. 从文件中读取 JSON?

推荐阅读