1

我目前正在使用 Revit Python Shell 2017,我想说让“交流”不同的预设命令。
例如,假设我加载了一个房屋模型,并通过我之前创建的预设命令在其上创建了一些额外的墙壁。在创建这些墙时,我可以将所有这些新墙 ID 作为列表存储在一个变量中。

现在,如果我想在之后完全删除这些墙,我想使用我存储在列表中的 ID 来识别它们,然后删除它们。
如果我在交互式 Python Shell 会话中,那么“ID 列表”变量仍然可以访问(只要我不关闭 shell),我可以从中检索 ID,然后删除墙壁。
但是,如果我使用预设命令怎么办?第一个命令是“创建墙壁”,第二个命令是“擦除这些墙壁”。但是那个“IDs list”变量在第二个固定命令环境中不存在,所以我不能用它来擦除墙壁。

那么,方法是什么?当然,在这个例子中,我可以使用不同的方法来识别第二个命令中的墙壁,例如要求用户选择它们等等。但我想要的想法是从第一个命令中列出的商店“ Revit 中的某个位置”,并在调用第二个命令时检索它。

我可以将列表写入外部文本文件,并在第二个命令中读取文件......但是有更清洁的方法吗?

对不起这里使用的初学者语言,希望我的问题足够清楚!有人可以提供帮助;)

最好的,
阿诺。

4

2 回答 2

1

这是一个很好的问题 Arnaud,过去我做了以下事情:

创建一个文本项目参数,并使用 XML 填充它(是的,您可以在文本参数中使用换行符)。这类似于 Ideate BIM Link 所做的(检查任何使用 BIM Link 的项目的项目参数)。这是一种在命令之间保持数据持久性的冗长方法。

我认为第二部分(保存墙壁 ID)更难,因为我理解每次打开项目时都会重新分配 ID。你可以测试一下,看看是不是这样?

另一种方法可能涉及使用在您完成选择墙壁后仍然存在的外部命令。您能否详细了解您想要实现的目标?

于 2016-07-26T20:24:41.340 回答
1

所以,

只是为了留下痕迹,我使用 pyRevit 及其将数据存储在临时文件中的能力解决了这个问题(在这里,查找“使用临时文件”)。

于 2019-07-03T09:05:25.620 回答