资源描述
#,61,#,#,工程咨询综合信息管理系统,#,Revit,高级应用,Dynamo,可视化编程培训,Dynamo,基础知识,Dynamo,数据结构,Dynamo,可视化编程入门,Dynamo,与,Revit,交互,Dynamo,高级开发,1.,2.,3.,4.,5.,目 录,参考文献,6.,一、,Dynamo,基础知识,1.1 Dynamo,简介,Dynamo,是,Autodesk,公司推出的,一款功能十分强大,并且十分便捷的可视化编程软件。它可以和多款,Autodesk,公司的其他软件交互,适应各类使用人员的专业需求。,“可视化编程语言”可以让设计师通过图形化界面创建程序,不必从白纸开始一行行地写程序代码,用户现在可以简单地连接预定义功能模块,轻松创建自己的算法和工具。或者说,,设计师不用写代码就可以享受到计算式设计的好处。,Dynamo,最新版本号是,1.2,,它是免费的,开源的,使用,Apache 2.0,授权协议。,开源软件,(open-source),是指其源码可以被公众使用的软件,并且此软件的修改和分发也不受许可证的限制。主要被散布在全世界的编程者队伍所开发,但是同时一些大学,政府机构承包商,协会和商业公司也开发它。,1.2 Dynamo,和,GRASSHOPPER,Dynamo,跟,Rhino(,犀牛,),上的插件,Grasshopper(GH),类似,因为两个插件都可以让设计师用可视化编程界面开发自己的设计工具。,Grasshopper,强项在于对复杂几何形体的处理。在数据处理方面,,运算效率更佳,现成的算法更多,缺点是处理模型数据较耗费精力。,Revit,出色之处在于管理建筑信息,数据结构灵活性更佳,可以调用,Revit,的数据是优势。缺点是速度偏慢。,1.2 Dynamo,和,GRASSHOPPER,Grasshopper(GH),体育场建模:,1.2 Dynamo,和,GRASSHOPPER,Grasshopper(GH),地铁盾构规划建模:,1.3,下载、安装、运行,软件安装文件包可以从,http:/dynamobim.org,下载。,从,Revit 2017,版本开始,,Autodesk,已经在安装,Revit,时默认安装,Dynamo,,早期版本需要自己手动下载安装一下。,源代码则可以从, FilesDynamoDynamo Revit1.2DynamoSandbox.exe,Revit 2017,之后的版本:“管理”,-“Dynamo”,Revit 2017,之前的版本:“附加模块”,-“Dynamo”,1.3,下载、安装、运行,1.4,用户界面,1,、菜单栏;,2,、工具栏;,3,、节点库;,4,、工作空间;,5,、控制台,1.5,节点库,节点库(,Library,):包含多个节点的容器。不同的节点库,有不同的,特定功能的各类节点。,1.5,节点库,节点库(,Library,):包含多个节点的容器。不同的节点库,有不同的,特定功能的各类节点。,1.6,自带的例子,举例操作详解:,Dynamo,帮助,样例,Basics,二、,Dynamo,数据结构,2.1,输入数据,数据可以是,:,实数,如,0,,,100,,,3.1415,,,-,19,;,字符,前后要带引号,如,”hello world”,,,”,你好,世界!,”,;,各,类变量(墙高,河长,半径),;,几何,图元(圆形,球体,曲面),;,数组,如,1,2,3,4,5,,,A,B,C,D,E,a,b,c,d,e,;,还,可以是空值(,null,),;,2.2,List,数据,Dynamo,中的数据都是存放在,List,数列中,就像是其他编程语言中的数组,可以是一维、二维、三维,。列表的索引是从,0,开始。,2.3,List,数据处理,Dynamo,中的数据都是存放在,List,数列中,就像是其他编程语言中的数组,可以是一维、二维、三维,。列表的索引是从,0,开始。,2.4,代码块,Code Block,代码块(,Code Block,),是,dynamo,中可以直接输入,DesignScript,的节点。可以通过双击鼠标左键,快速打开,Code Block,。,2.5,脚本语言,DesignScript,DesignScript,是,dynamo,编程语言。通过代码块(,Code Block,),可以快速,简明的实现使用者的许多功能,前提是使用者有一定的计算机编程语言的基础。,dynamo,也提供了一个十分有用的功能,就是可以很便捷的将庞大的可视化编程好的节点和接线,直接变为代码块(,Code Block,)中的编程语言代码。,2.6 DesignScript,新建函数和调用函数,在代码块编写自定义函数,并且调用这个自定义函数。,自定义了一个,sumNumber,函数,对三个数求和并返回结果。,2.7 Python,语言,Dynamo,里面有,Python Script,节点,这个节点可以实现两个重要功能:,接入,外部,Python,库,,使用高级,的函数功能,,这是,对,Design Script,功能的巨大,扩充。,调用,Revit API,,操控,Revit,的构件,(,族,),。,缺省的仅引入,ProtoGeometry,,支持基本的,Design Script,核心功能和图形类处理功能。,2.7 Python,调用,Revit API,REVITAPI.DLL,:提供处理,Revit,内基本构件,Element,的处理功能,REVITUIAPI.DLL,:提供,Revit,内用户交互选择及,TaskDialog,实时输出,REVITNODES.DLL,:提供对,Dynamo,内节点的支持,可以在,Python Script,里直接写,Design Script,代码,REVITSERVICES.DLL,:提供对,Revit,多文档以及构件的事务处理(修改构件,更新数据库时必需的)服务。,三、,Dynamo,可视化编程入门,3.1,可视化编程的基本要素,节点(,nodes,):根据需要,通过连接不同的,有特定功能的节点,从而实现可视化编程。,3.1,可视化编程的基本要素,节点(,nodes,):根据需要,通过连接不同的,有特定功能的节点,从而实现可视化编程。,3.1,可视化编程的基本要素,错误,提示信息;,Watch,节点检查输入的数据内容;,上游段的输入数据类型,(Red,空变量)无法传递到下游端的节点;,接线(,Wires,):各个节点需要通过接线来传递数据。是数据流的传递纽带。,3.2,常用节点,1,布尔值(真,/,假),2,数值(实数),3,字符串,4,实数滑动条,5,整数滑动条,6,文件夹路径,7,文件路径,3.2,常用节点,查看,/,三维查看(,Watch/Watch3D,):用来查看数据或者几何图元。,3.3,可视化编程,第一步:搜索,code block,并添加,第二步:搜索,watch,并添加,第三步:输入字符串,注意带双引号,第四步:连接看到结果,第四步:再加一行计算,3.3,数学计算,第一步:搜索,Number,并添加,第二步:搜索运算符,+,,并添加,第三步:搜索,watch,并添加,第四步:输入数字,连接看到结果,3.4,画圆,常规的编程代码如下:,myPoint = Point.ByCoordinates(0.0,0.0,0.0);,x = 5.6; y = 11.5;,attractorPoint = Point.ByCoordinates(x,y,0.0);,dist = myPoint.DistanceTo(attractorPoint);,myCircle = Circle.ByCenterPointRadius(myPoint,dist);,可视化编程的过程如下:,3.4,画圆,两个不同的方法,得到同样的结果,如下:,四、,Dynamo,和,Revit,交互,Revit,的层级结构(族类别、族、族类型、实例),4.1,获取,Revit,中的图元,Dynamo,中提供选择,Revit,图元的节点,4.1,获取,Revit,中的图元,在左侧项目树下面,展开,Revit- Selection,,单击“,Select Model Element”,4.2,手动选择,Revit,中的图元,点击“选择”按钮,在,Revit,中选择构件,可以看到如下窗口,已经返回选择构建的,ID,然后在搜索框输入,Name,,单击“获取图元名称”,4.2,手动选择,Revit,中的图元,有了这两个后,可以获取选中元素的名称。,用,Python,脚本调用,Revit,标准弹窗,TaskDialog,。搜索框输入,Python,,单击“,Python Script”,。双击脚本组件的空白区域,输入脚本。运行如下所示:,4.3,开关,Revit,预览,缺省情况下,在,Dynamo,中生成的点、线等图形元素,会在,Revit,图形界面中有一个对应的显示,请注意,仅仅是蓝色高亮的点、线显示,非实际,Revit,中存在的。,有时候这样在,Revit,中的运行中,点集比较密时,这种密集的显示会影响在,Revit,内的后继操作,因此有时候需要能够将其关闭,不影响在,Revit,的手动操作。,这种显示方式可以在,Dynamo,内进行切换,方法为下拉菜单:,【,视图,】=【,背景三维预览,】=【,可用预览,】=【Revit,背景预览,】,,如下图所示:,4.4,单位处理,Dynamo,和,Revit,结合地很好,除了内部单位不一致。,Dynamo,里不带单位的数值都会认为是以“米”为单位。,Revit,里面默认单位是毫米。,五、,Dynamo,高级开发,5.1,桥梁隧道高级建模,东成西就:一个技术流派的高手,精于研究,BIM,在水利行业的应用,知名博客博主!,职业:水利工程师, Revit,炼金术,-Dynamo,基础实战教程,61,谢谢大家!,Revit,高级应用,Dynamo,可视化编程培训,
展开阅读全文