Как разделить переменную между 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