Как сохранить настройки надстройки Revit с помощью Python?

Моя надстройка Revit в какой-то момент считывает текстовый файл, который может быть расположен где угодно. В моей текущей реализации путь к текстовому файлу жестко задан. Я бы хотел избежать этого, чтобы, когда я распространяю Надстройку другим людям, она просто не дает сбоев.

В идеале я хотел бы дать им возможность указывать свое собственное местоположение для этого файла на своем компьютере, и что им не нужно повторно указывать его каждый раз, когда они повторно запускают надстройку ! Другими словами, я хотел бы сохранить эту информацию раз и навсегда. И если вы закроете и снова откроете Revit, местоположение все еще будет где-то сохранено при повторном использовании надстройки.

Этот вопрос на самом деле похож на этот, за исключением того, что мне понадобится решение при разработке на Python (pyRevit). Любая помощь?


person Arnaud    schedule 30.05.2018    source источник


Ответы (2)


если вы разрабатываете аддон в pyRevit, вы можете использовать модуль pyrevit.script, чтобы получить конфигурацию для этого скрипта.

Спросите пользователя о местонахождении файла (pyrevit.forms.save_file помогает), а затем сохраните путь к файлу в конфигурации скрипта. pyRevit обрабатывает это автоматически и сохраняет информацию в своем главном файле конфигурации в %appdata%/pyRevit

from pyrevit import script
config = script.get_config()
config.filelocation = 'path/to/your/file'
script.save_config()

А потом прочтите конфигурацию следующим образом:

from pyrevit import script
config = script.get_config()
print(config.filelocation)
# or to get the config safely
print(config.get_option('filelocation', None)
person Ehsan Iran-Nejad    schedule 31.05.2018

Я реализовал два других способа хранения настроек надстройки Revit в HoloLens Escape Path Waypoint JSON Exporter:

  • Сохранение настроек параметров надстройки в XML с использованием класса .NET System.Configuration.ApplicationSettingsBase
  • Сохранение настроек параметров надстройки в формате JSON с использованием пользовательского решения и класса JavaScriptSerializer

Оба решения хорошо подходят для того, что вам нужно.

Ознакомьтесь с ними в репозитории ExportWaypointsJson GitHub.

person Jeremy Tammik    schedule 30.05.2018
comment
Большое спасибо, Джереми! - person Arnaud; 31.05.2018