如何在2个pyRevit脚本之间共享变量?

时间:2018-02-07 09:25:16

标签: revit-api pyrevit

我正在使用最新版本的pyRevit,v45。 我正在使用

在临时文件中写一些信息
myTempFile = script.get_instance_data_file("id")

这将创建一个名为pyRevit_2018_xxxx_id.tmp的文件,其中存储了有用的信息。如果我没弄错的话,每次重新加载Revit时,“xxxx”部分都会改变。现在,我需要从另一个pyRevit脚本访问这些信息。

如何检索我需要阅读的临时文件的名称?换句话说,如何从第二个脚本中访问“myTempFile”,该脚本不知道“myTempFile”的名称?

我想我可以以某种方式分享我的脚本之间的变量,但是这样做的正确方法是什么?我知道这一定是一个非常基本的编程问题,但我确实不是程序员;)

非常感谢, 阿诺。

2 个答案:

答案 0 :(得分:0)

好的,我现在意识到第一个脚本中的变量在执行后不再存在。 所以现在我把文件名写在另一个文件中,其中我知道名字..这有效。

但如果有更清洁的方法,我很乐意学习;)

阿诺

答案 1 :(得分:0)

pyrevit.script模块提供了4种不同的方法,用于根据用例创建临时文件:

<强> get_instance_data_file: 对于标有Revit实例pid的数据文件。这意味着在另一个实例上运行的脚本将不会看到此临时文件。 http://pyrevit.readthedocs.io/en/latest/pyrevit/script.html#pyrevit.script.get_instance_data_file

<强> get_universal_data_file: 适用于所有Revit实例和版本均可访问的临时文件 http://pyrevit.readthedocs.io/en/latest/pyrevit/script.html#pyrevit.script.get_universal_data_file

<强> get_data_file: 获取当前revit版本的标准临时文件的基本方法 http://pyrevit.readthedocs.io/en/latest/pyrevit/script.html#pyrevit.script.get_data_file

<强> get_document_data_file: 用活动文档标记的临时文件(因此处理另一个文档的脚本将看不到这个) http://pyrevit.readthedocs.io/en/latest/pyrevit/script.html#pyrevit.script.get_document_data_file

每种方法都使用模式来创建临时文件名。因此,只要对方法的调用与不同的脚本相同,该方法就会生成相同的文件名。

示例:

脚本1:

from pyrevit import script
tfile = script.get_data_file('mydata')

脚本2:

from pyrevit import script
tempfile = script.get_data_file('mydata')

在此示例tempfile = tfile中,因为文件ID相同。

每个都有文档,所以请务必查看这些文档并选择适合您目的的风格。