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

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

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

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

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)

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

  • Сохраните настройки параметров надстройки в формате XML с помощью.NET System.Configuration.ApplicationSettingsBase учебный класс
  • Сохраните настройки параметров надстройки в JSON, используя пользовательское решение и JavaScriptSerializer учебный класс

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

Проверьте их в репозитории ExportWaypointsJson GitHub.

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