如何在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的列表,但是如何在Visual Studio Code中重新制作打印出的ID的列表呢?

Attached image of result

Screenshot of 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()

解决方法

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

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

  1. Read & Write JSON with Python
  2. How do I write JSON data to a file?
  3. Reading JSON from a file?