欢迎加入BIM行业开发交流1群 群号:711844216(满),二群群号:1016453207
一、为什么要使用python?
Dynamo的出现,是为了方便建筑师实现参数化编程,可是当用到一定的深度以后,会发现节点太多,管理起来不方便,有些功能用节点并不能实现。python作为一种灵活的编程脚本语言,可以实现节点功能以外,还能引入第三方函数,大大增加参数化设计的方便性。本文将介绍如何在python中引用dynamo dll。
二、dynamo与dll文件的关系(反编译工具的使用)
想将dynamo中的节点变成python代码,首先得知道节点对应的dynamo dll文件在哪。
- 运行环境,revit2017,revit2018,dynamo 2.0
- dynamo自带的节点,在dynamo的安装目录C:\Program Files\Dynamo\Dynamo Core\2\
- dynamo中的Revit节点,C:\Program Files\Dynamo\Dynamo Revit\2\Revit_2018\
拿创建几何的geometry来说,我们找到dynamo的安装目录C:\Program Files\Dynamo\Dynamo Core\2\ProtoGeometry.dll文件,然后利用反编译工具ILSpy打开,这里用ILSpy打开。在例子的引用中介绍了几种重要dll。
这里点开其中的Cirle方法就可以看到这里有5种创建圆的方法
知道这个后,我们就可以直接通过Dynamo中的Python代码脚本进行圆形的生成了。下面通过读取EXCEL,然后生成圆。
三、读取excel表格,批量创建圆实例
思路:1.将EXCEL读取节点组合转换为Python代码
2.将圆形生成节点组合转换为Python代码
结果如下:
这里介绍了一些重要的引用
// An highlighted block
# -*- coding: UTF-8 -*-
import math
import clr
# 导入 RevitAPI 和 RevitAPIUI
clr.AddReference("RevitAPI")
clr.AddReference("RevitAPIUI")
import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
#导入dyamo中的几何图元,这里就将上个内容中提到的Geometry节点引入了进来
clr.AddReference("ProtoGeometry")
from Autodesk.DesignScript.Geometry import *
#导入revit节点,如果要使用revit节点中的方法
clr.AddReference("RevitNodes")
from Revit.Elements import *
#涉及到revit和dynamo几何元素装换,采用下列代码
import Revit
# 导入几何体转换方法(将dynamo中输出的几何体转为revit中的几何体)
clr.ImportExtensions(Revit.GeometryConversion)
# 导入元素转换(revit转dynamo)
clr.ImportExtensions(Revit.Elements)
#导入系统文件操作,这样才能顺利将EXCEL读取节点进行装换
import System
from System.IO import FileInfo
#导入dynamoEXCEL读取功能
clr.AddReference("DSOffice")
from DSOffice import Data
#导入列表功能节点
clr.AddReference("DSCoreNodes")
import DSCore
from DSCore import *
#这里采用圆心与半径的方法创建圆
#将EXCEL读取节点进行转换
circleExcel=FileInfo(IN[0]);
circleInformation=Data.ImportExcel(circleExcel,"Sheet1",False,True);
circleList=[];
for i in range(1,10):
x=circleInformation[i][1];
y=circleInformation[i][2];
z=circleInformation[i][3];
r=circleInformation[i][4];
center =Point.ByCoordinates(x,y,z)
circle =Circle.ByCenterPointRadius(center,r)
circleList.Add(circle);
OUT=circleList;
这个是EXCEL表格
四、注意事项
需要Revit二次开发全流程教学 的朋友可以联系我qq:1056295111
- 1为了简单说明,本文只写了较为基础的例子,dynamo中所有的节点,基本上都能够在dynamo安装目录下找到
- 2本文在例子中介绍了一些基本的dynamo dll 文件的引入方法,如有不足之处,欢迎指出
- 3.我是黑夜の骑士,欢迎大家关注我的博客,笔者将持续输出revit二次开发以及编程干货
- 4.欢迎加入BIM行业开发交流1群,获取更多开发资料 群号:711844216
- 5.微信搜索“工程人的编程课堂”公众号获得行业资讯,以及更多编程干货
更多推荐
如何在dynamo中使用Python编程
发布评论