Как сохранить настройки надстройки 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.