欢迎加入BIM行业开发交流1群 群号:711844216(满),二群群号:1016453207
小伙伴们在使用dynamo中的PythonScript节点时,为了丰富PythonScript节点的功能,那么就需要引入第三方模块。首先,我们得明白,PythonScirpt节点是基于IronPython的,因此模块的导入方式与python是不一样的。本文就介绍如何在IronPython中导入第三方模块。
对于这两大类,三种情况,就用下面的代码进行说明
1.导入IronPython自带模块
import math #导入自身的数学库模块
import clr #导入自身对.net dll引用的功能模块,不管是revit中定义好的模块,还是自定义/第三方模块,都需要先引入这个模块,然后再通过这个模块方法进行导入
2.1导入revit中准备好的模块
import clr #导入自身对.net dll引用的功能模块
# 导入Revit自身的模块 RevitAPI.dll 和 RevitAPIUI.dll
clr.AddReference("RevitAPI") #导入RevitAPI.dll文件,文件后缀.dll可以省略
clr.AddReference("RevitAPIUI")#导入RevitAPIUI.dll文件,文件后缀.dll可以省略
import Autodesk #导入Autodesk命名空间
from Autodesk.Revit.DB import * #再从具体的命名空间下引入模块
from Autodesk.Revit.UI import * #再从具体的命名空间下引入模块
2.2导入自定义模块/第三方模块
import clr #导入自身对.net dll引用的功能模块
import sys #导入系统功能的模块,下面主要用于指定dll路径
sys.path.append(r"dll文件所在的地址") # 指定dll文件所在的地址,前面有r转义字符,直接复制粘贴地址就行
clr.AddReference ("xxx.dll") # 需要导入的dll名称
import xxxNamspace # 导入这个dll文件中,我们需要使用到的函数的命名空间
#上面这些操作的简便写法如下:
import clr
clr.AddReferenceToFileAndPath(r"dll文件所在的地址\xxx.dll")
import xxxNamspace # 导入这个dll文件中,我们需要使用到的函数的命名空间
四、注意事项
1.在IronPython中导入.net下写好的dll与python导入模块是有区别的。
2.对于导入IronPython自身,或者revit写好的模块是不需要指定路径的(IronPython,dynamo已经帮我们做好了)。
3.对于导入自定义/外部模块是需要我们在程序中添加好路径的。
4.如果小伙伴们有需要,笔者会出一个自定义模块的教程。
5.大家好,我是黑夜の骑士,欢迎大家关注我的博客,笔者将持续输出revit二次开发以及编程干货。