Revit二次开发的资源调用路径

简介: Revit二次开发的资源调用路径

Revit 二次开发过程中,经常需要调用一些外部资源,例如图片、视频、文本文件等等,从而实现定制化的功能。对于界面图标或图片资源的使用,相对而言比较简单,具体见:Revit二次开发使用相对路径显示图片,而要在后台代码中顺利地拿到生成操作为Content的资源并不容易。可谓前有狼后有虎。

情况1:获取到的是Revit.exe的路径,而非dll路径

System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
Application.ExecutablePath 
Application.StartupPath

20190509215507162.png


情况2:外部工具获取的是临时 dll 路径


在程序打包安装之前,通常都是通过Addin Manager来进行编程和调试,而当你知道用以下代码来获取 dll 路径时,发现并不是你想要的,因为它所指向的是一个临时生成的 dll ,而当你将程序集成到 Revit 中时,这时得到的才是你想要的路径。


Assembly.GetExecutingAssembly().Location

2021082414254647.png

Addin Manager调用时对应的dll路径

20210824142756908.png

PushButton调用时对应的dll路径

为了更方便地获取到资源的路径,将所有资源打包到Resources文件夹中并与 dll 置于同一路径下,此时资源文件的路径如下:


2021082414532283.png


资源文件夹


Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\Resources\Factor.xml"
相关文章
|
10月前
|
监控 API C++
一个更好的文件监控类,基于 DotNet 官方提供的 FileSystemWatcher
一个更好的文件监控类,基于 DotNet 官方提供的 FileSystemWatcher
|
11天前
|
安全 数据库连接 Python
告别繁琐!自定义Python上下文管理器,让你的资源管理变得如此简单
【7月更文挑战第4天】在Python中,上下文管理器通过`with`语句简化资源管理,确保资源的自动获取与释放,增强程序稳定性。自定义上下文管理器依靠`__enter__`和`__exit__`方法,例如,`CustomFileManager`类展示了如何记录文件操作。自定义管理器能简化代码、保证资源安全释放和提供定制逻辑,从而提升代码的健壮性和可维护性。它是处理文件、连接等资源管理的强大工具。
|
12天前
|
安全 C语言
LabVIEW调用第三方硬件DLL常见问题及开发流程
LabVIEW调用第三方硬件DLL常见问题及开发流程
10 0
|
API 网络安全 图形学
【unity细节】关于资源商店(Package Maneger)无法下载资源问题的解决
【unity细节】关于资源商店(Package Maneger)无法下载资源问题的解决
420 0
|
测试技术 数据安全/隐私保护
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(上)
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等
613 0
|
测试技术
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(下)
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(下)
242 0
|
开发工具 C# C++
Revit2019二次开发外部工具(附加模块)的安装
Revit2019二次开发外部工具(附加模块)的安装
Revit2019二次开发外部工具(附加模块)的安装
Revit二次开发—载入族并交互式放置
Revit二次开发—载入族并交互式放置
Revit二次开发—载入族并交互式放置
Revit二次开发—ISelectionFilter接口过滤用户选择
Revit二次开发—ISelectionFilter接口过滤用户选择
Revit二次开发—获取并修改指定标高
Revit二次开发—获取并修改指定标高