0

我正在使用最新版本的 pyRevit,v45。我在临时文件中写了一些信息

myTempFile = script.get_instance_data_file("id")

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

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

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

非常感谢,阿诺。

4

2 回答 2

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 是相同的。

每个都有文档,因此请确保您查看这些文档并选择适合您目的的风味。

于 2018-03-09T16:35:02.610 回答
0

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

但是,如果有更清洁的方法可以做到这一点,我会很高兴学习 ;)

阿尔诺

于 2018-02-08T08:14:56.137 回答