Как разделить переменную между 2 скриптами pyRevit?

Я использую последнюю версию pyRevit, v45. Я пишу некоторую информацию во временных файлах с

myTempFile = script.get_instance_data_file("id")

Это создает файл с именем pyRevit_2018_xxxx_id.tmp, в котором я храню полезную информацию. Если я не ошибаюсь, часть "xxxx" меняется каждый раз, когда я перезагружаю Revit. Теперь мне нужно получить доступ к этой информации из другого скрипта pyRevit.

Как я могу получить имя временного файла, который мне нужно прочитать? Другими словами, как я могу получить доступ к myTempFile из второго скрипта, который не имеет представления о названии myTempFile?

Я предполагаю, что могу как-то разделить эту переменную между моими сценариями, но как правильно это сделать? Я знаю, что это, должно быть, очень простой вопрос программирования, но я действительно не программист;)

Большое спасибо, Арно.

2 ответа

Модуль pyrevit.script предоставляет 4 различных метода для создания временных файлов на основе их варианта использования:

get_instance_data_file: для файлов данных, помеченных pid экземпляра Revit. Это означает, что сценарии, запущенные на другом экземпляре, не увидят этот временный файл. http://pyrevit.readthedocs.io/en/latest/pyrevit/script.html

get_universal_data_file: для временных файлов, доступных для всех экземпляров и версий Revit http://pyrevit.readthedocs.io/en/latest/pyrevit/script.html

get_data_file: Базовый метод для получения стандартного временного файла для текущей версии revit http://pyrevit.readthedocs.io/en/latest/pyrevit/script.html

get_document_data_file: временный файл, помеченный активным документом (поэтому скрипты, работающие с другим документом, этого не увидят) http://pyrevit.readthedocs.io/en/latest/pyrevit/script.html

Каждый метод использует шаблон для создания имени временного файла. Таким образом, если вызов метода одинаков для разных сценариев, метод генерирует одно и то же имя файла.

Пример:

Сценарий 1:

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

Сценарий 2:

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

В этом примере tempfile = tfile так как идентификатор файла такой же.

По каждому документу есть документация, поэтому обязательно посмотрите на них и выберите аромат, который соответствует вашим целям.

Хорошо, теперь я понимаю, что мои переменные в первом скрипте перестают существовать после его выполнения. Так что сейчас я написал имя файла в другом файле, имя которого я знаю.. Это работает.

Но если есть более чистый способ сделать это, я был бы рад узнать;)

Arnaud

Другие вопросы по тегам