欢迎加入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编程相关推荐

  1. linux python开发环境_如何在Linux系统中搭建Python编程环境

    1 在大多数的Linux系统中,基本上都默认安装了Python,也就是说,在Linux的系统中基本上是不需要安装什么软件,就可以使用Python. 下面以ubuntu操作系统为例,看看如何在Linux ...

  2. excel调用python编程-如何在excel中调用python脚本

    如何在excel中调用python脚本 发布时间:2020-07-03 14:15:28 来源:亿速云 阅读:155 如何在excel中调用python脚本?针对这个问题,这篇文章详细介绍了相对应的分 ...

  3. dynamo中使用python代码资源合集

    欢迎加入BIM行业开发交流1群,获取开发资料 群号:711844216 面向工程人员的Revit二次开发课堂 地址:https://space.bilibili.com/38879307/channe ...

  4. 如何在cmd中切换python版本总结

    如何在cmd中切换Python版本总结 前言 尝试一:更改系统变量 尝试二.更改解释器名称 前言 由于学习nao机器人编程参加比赛,因此安装了python2.7版本.而之前安装的都为python3.9 ...

  5. 如何在Windows中安装Python?

    如何在Windows中安装Python? 1. Python的安装 官网下载:https://www.python.org/downloads/windows/ 点开上面的链接,会发现有很多版本. 首 ...

  6. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  7. fortran语言和python_如何在Fortran中调用Python

    Python是机器学习领域不断增长的通用语言.拥有一些非常棒的工具包,比如scikit-learn,tensorflow和pytorch.气候模式通常是使用Fortran实现的.那么我们应该将基于Py ...

  8. unbantu上python安装步骤_如何在Ubuntu中安装Python 3.6?

    Python是增长最快的主要通用编程语言.原因有很多,比如它的可读性和灵活性,易于学习和使用,可靠和高效. 有两个主要的Python版本被使用- 2和3 (Python的现在和未来);前者将看不到新的 ...

  9. 完全掌握Python: 在一门课程中使用 Python 编程所需的一切 | Complete Python Mastery

    描述 Complete Python Mastery 是由 CodeWithMosh 学院发布. 在一门课程中使用 Python 编程所需的一切(包括 3 个实际项目) 掌握 Python 可以为你的 ...

最新文章

  1. 2017年ICPC西安邀请赛A、XOR(线段树套线性基 + 思维)
  2. Kubernetes的十大使用技巧
  3. Android之获得内存剩余大小与总大小
  4. c语言格式化字符漏洞,格式化字符串漏洞题目练习
  5. Winform控件拖动
  6. php 如何实现关键字查找,php中如何通过关键字查找文件中包含该关键字的所有行内容呢...
  7. Java开发利器:IntelliJ IDEA的安装、配置与使用
  8. TypeScript 枚举(Enum)
  9. setTimeout() 与 setInterval() 异同
  10. JavaScript正则匹配
  11. Maven项目有红叉,文件却没有错误,已解决
  12. SAS结果输出到EXCEL的多个sheet
  13. Steam怎么和Steam link远程畅玩?
  14. 常见的加密算法原理与实现:MD5加密
  15. oracle dba_hist_snapshot,通过dba_hist_*来进行诊断
  16. 三年磨一剑——微信OCR图片文字提取
  17. 河南省哪所技校学计算机软件工程,河南技校排名前十有哪些?都有什么专业
  18. 太神了!世界上最著名的菲尔人格测试!
  19. Java Robocode 以示例wall为基准的一个坦克
  20. linux局域网文件共享之samba

热门文章

  1. aspenv9使用_AspenONE V9详细图文安装教程
  2. IE 兼容性问题记录
  3. 《马里奥兄弟》告诉我们的那些道理
  4. spring源码深度解析 第2版 pdf_吹爆!阿里爆款Spring源码高级笔记,原来看懂源码如此简单...
  5. 电视服务器无响应1500,你家的电视盒子直播总是卡,解决方法全都在这里
  6. 使用java实现自动扫雷
  7. Unable to add window -- token android.view.ViewRootImpl$W@e3124a is not vali
  8. G120变频器,运动控制程序模板。 西门子1200编程实例
  9. 英语字母abcd在计算机内部,abcd字母表
  10. Android 分贝测试仪功能,你会的还只有初级Android工程师的技术吗