如何使用 Python 存储 Revit 附加模块设置?

How to store Revit Add-in Settings with Python?

我的 Revit 插件有时会读取一个文本文件,该文件可能位于任何位置。在我当前的实现中,文本文件的路径是硬编码的。我想避免这种情况,这样当我将插件分发给其他人时,它不会简单地崩溃。

理想情况下,我想让他们能够在他们的计算机上为该文件指定自己的位置,并且他们不需要在每次重新启动时都重新指定它加载项! 换句话说,我想一劳永逸地存储这些信息。如果您关闭并重新打开 Revit,当您重新使用插件时,该位置仍存储在某处。

这个问题实际上和this one类似,只是我在Python (pyRevit)中开发时需要一个解决方案。有帮助吗?

我实现了另外两种在 HoloLens Escape Path Waypoint JSON Exporter 中存储 Revit 插件设置的方法:

  • 使用 .NET System.Configuration.ApplicationSettingsBase class
  • 在 XML 中存储加载项选项设置
  • 使用自定义解决方案将加载项选项设置存储在 JSON 和 JavaScriptSerializer class

两种解决方案都非常适合您的需要。

ExportWaypointsJson GitHub repository 中查看它们。

如果您在 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)