《Revit高級(jí)應(yīng)用Dynamo可視化編程培訓(xùn)講義》由會(huì)員分享,可在線閱讀,更多相關(guān)《Revit高級(jí)應(yīng)用Dynamo可視化編程培訓(xùn)講義(61頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、?#?,61,?#?,?#?,工程咨詢綜合信息管理系統(tǒng),,,?#?,Revit,高級(jí)應(yīng)用,Dynamo,可視化編程培訓(xùn),,Dynamo,基礎(chǔ)知識(shí),Dynamo,數(shù)據(jù)結(jié)構(gòu),Dynamo,可視化編程入門,Dynamo,與,Revit,交互,Dynamo,高級(jí)開發(fā),,,,,1.,2.,3.,4.,5.,,目 錄,參考文獻(xiàn),,6.,一、,Dynamo,基礎(chǔ)知識(shí),,1.1 Dynamo,簡介,Dynamo,是,Autodesk,公司推出的,一款功能十分強(qiáng)大,并且十分便捷的可視化編程軟件。它可以和多款,Autodesk,公司的其他軟件交互,適應(yīng)各類使用人員的專業(yè)需求。,“可視化編程語言”可以讓設(shè)計(jì)師通過圖
2、形化界面創(chuàng)建程序,不必從白紙開始一行行地寫程序代碼,用戶現(xiàn)在可以簡單地連接預(yù)定義功能模塊,輕松創(chuàng)建自己的算法和工具?;蛘哒f,,設(shè)計(jì)師不用寫代碼就可以享受到計(jì)算式設(shè)計(jì)的好處。,Dynamo,最新版本號(hào)是,1.2,,它是免費(fèi)的,開源的,使用,Apache 2.0,授權(quán)協(xié)議。,開源軟件,(open-source),是指其源碼可以被公眾使用的軟件,并且此軟件的修改和分發(fā)也不受許可證的限制。主要被散布在全世界的編程者隊(duì)伍所開發(fā),但是同時(shí)一些大學(xué),政府機(jī)構(gòu)承包商,協(xié)會(huì)和商業(yè)公司也開發(fā)它。,,1.2 Dynamo,和,GRASSHOPPER,Dynamo,跟,Rhino(,犀牛,),上的插件,Grassho
3、pper(GH),類似,因?yàn)閮蓚€(gè)插件都可以讓設(shè)計(jì)師用可視化編程界面開發(fā)自己的設(shè)計(jì)工具。,Grasshopper,強(qiáng)項(xiàng)在于對(duì)復(fù)雜幾何形體的處理。在數(shù)據(jù)處理方面,,運(yùn)算效率更佳,現(xiàn)成的算法更多,缺點(diǎn)是處理模型數(shù)據(jù)較耗費(fèi)精力。,Revit,出色之處在于管理建筑信息,數(shù)據(jù)結(jié)構(gòu)靈活性更佳,可以調(diào)用,Revit,的數(shù)據(jù)是優(yōu)勢。缺點(diǎn)是速度偏慢。,,1.2 Dynamo,和,GRASSHOPPER,Grasshopper(GH),體育場建模:,,1.2 Dynamo,和,GRASSHOPPER,Grasshopper(GH),地鐵盾構(gòu)規(guī)劃建模:,,1.3,下載、安裝、運(yùn)行,軟件安裝文件包可以從,http://
4、dynamobim.org,下載。,從,Revit 2017,版本開始,,Autodesk,已經(jīng)在安裝,Revit,時(shí)默認(rèn)安裝,Dynamo,,早期版本需要自己手動(dòng)下載安裝一下。,源代碼則可以從, Files\Dynamo\Dynamo Revit\1.2\DynamoSandbox.exe",Revit 2017,之后的版本:“管理”,->“Dynamo”,Revit 2017,之前的版本:“附加模塊”,->“Dynamo”,,1.3,下載、安裝、運(yùn)行,,1.4,用戶界面,1,、菜單欄;,2,、工具欄;,3,、節(jié)點(diǎn)庫;,4,、工作空間;,5,、控制臺(tái),,1.5,節(jié)點(diǎn)庫,節(jié)點(diǎn)庫(,Librar
5、y,):包含多個(gè)節(jié)點(diǎn)的容器。不同的節(jié)點(diǎn)庫,有不同的,特定功能的各類節(jié)點(diǎn)。,,1.5,節(jié)點(diǎn)庫,節(jié)點(diǎn)庫(,Library,):包含多個(gè)節(jié)點(diǎn)的容器。不同的節(jié)點(diǎn)庫,有不同的,特定功能的各類節(jié)點(diǎn)。,,1.6,自帶的例子,舉例操作詳解:,Dynamo——,幫助,——,樣例,——Basics,二、,Dynamo,數(shù)據(jù)結(jié)構(gòu),2.1,輸入數(shù)據(jù),數(shù)據(jù)可以是,:,實(shí)數(shù),如,0,,,100,,,3.1415,,,-,19,;,字符,前后要帶引號(hào),如,”hello world”,,,”,你好,世界!,”,;,各,類變量(墻高,河長,半徑),;,幾何,圖元(圓形,球體,曲面),;,數(shù)組,如,1,2,3,4,5,……,,,
6、A,B,C,D,E,……,a,b,c,d,e,……,;,還,可以是空值(,null,),;,2.2,,List,數(shù)據(jù),Dynamo,中的數(shù)據(jù)都是存放在,List,數(shù)列中,就像是其他編程語言中的數(shù)組,可以是一維、二維、三維,……,。列表的索引是從,0,開始。,2.3,,List,數(shù)據(jù)處理,Dynamo,中的數(shù)據(jù)都是存放在,List,數(shù)列中,就像是其他編程語言中的數(shù)組,可以是一維、二維、三維,……,。列表的索引是從,0,開始。,2.4,代碼塊,Code Block,代碼塊(,Code Block,),是,dynamo,中可以直接輸入,DesignScript,的節(jié)點(diǎn)。可以通過雙擊鼠標(biāo)左鍵,快速打開
7、,Code Block,。,2.5,腳本語言,DesignScript,DesignScript,是,dynamo,編程語言。通過代碼塊(,Code Block,),可以快速,簡明的實(shí)現(xiàn)使用者的許多功能,前提是使用者有一定的計(jì)算機(jī)編程語言的基礎(chǔ)。,dynamo,也提供了一個(gè)十分有用的功能,就是可以很便捷的將龐大的可視化編程好的節(jié)點(diǎn)和接線,直接變?yōu)榇a塊(,Code Block,)中的編程語言代碼。。,2.6 DesignScript,新建函數(shù)和調(diào)用函數(shù),,在代碼塊編寫自定義函數(shù),并且調(diào)用這個(gè)自定義函數(shù)。,,自定義了一個(gè),sumNumber,函數(shù),對(duì)三個(gè)數(shù)求和并返回結(jié)果。,2.7 Python,
8、語言,Dynamo,里面有,Python Script,節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)可以實(shí)現(xiàn)兩個(gè)重要功能:,接入,外部,Python,庫,,使用高級(jí),的函數(shù)功能,,這是,對(duì),Design Script,功能的巨大,擴(kuò)充。,調(diào)用,Revit API,,操控,Revit,的構(gòu)件,(,族,),。,缺省的僅引入,ProtoGeometry,,支持基本的,Design Script,核心功能和圖形類處理功能。,2.7 Python,調(diào)用,Revit API,REVITAPI.DLL,:提供處理,Revit,內(nèi)基本構(gòu)件,Element,的處理功能,REVITUIAPI.DLL,:提供,Revit,內(nèi)用戶交互選擇及,Ta
9、skDialog,實(shí)時(shí)輸出,REVITNODES.DLL,:提供對(duì),Dynamo,內(nèi)節(jié)點(diǎn)的支持,可以在,Python Script,里直接寫,Design Script,代碼,REVITSERVICES.DLL,:提供對(duì),Revit,多文檔以及構(gòu)件的事務(wù)處理(修改構(gòu)件,更新數(shù)據(jù)庫時(shí)必需的)服務(wù)。,三、,Dynamo,可視化編程入門,,3.1,可視化編程的基本要素,節(jié)點(diǎn)(,nodes,):根據(jù)需要,通過連接不同的,有特定功能的節(jié)點(diǎn),從而實(shí)現(xiàn)可視化編程。,,3.1,可視化編程的基本要素,節(jié)點(diǎn)(,nodes,):根據(jù)需要,通過連接不同的,有特定功能的節(jié)點(diǎn),從而實(shí)現(xiàn)可視化編程。,,3.1,可視化編程的
10、基本要素,錯(cuò)誤,提示信息;,Watch,節(jié)點(diǎn)檢查輸入的數(shù)據(jù)內(nèi)容;,上游段的輸入數(shù)據(jù)類型,(Red,空變量)無法傳遞到下游端的節(jié)點(diǎn);,接線(,Wires,):各個(gè)節(jié)點(diǎn)需要通過接線來傳遞數(shù)據(jù)。是數(shù)據(jù)流的傳遞紐帶。,,,3.2,常用節(jié)點(diǎn),1,.布爾值(真,/,假),2,.?dāng)?shù)值(實(shí)數(shù)),3,.字符串,4,.實(shí)數(shù)滑動(dòng)條,5,.整數(shù)滑動(dòng)條,6,.文件夾路徑,7,.文件路徑,,3.2,常用節(jié)點(diǎn),查看,/,三維查看(,Watch/Watch3D,):用來查看數(shù)據(jù)或者幾何圖元。,3.3,可視化編程,,第一步:搜索,code block,并添加,第二步:搜索,watch,并添加,第三步:輸入字符串,注意帶雙引號(hào),
11、第四步:連接看到結(jié)果,第四步:再加一行計(jì)算,3.3,數(shù)學(xué)計(jì)算,,第一步:搜索,Number,并添加,第二步:搜索運(yùn)算符,+,,并添加,第三步:搜索,watch,并添加,第四步:輸入數(shù)字,連接看到結(jié)果,3.4,畫圓,,常規(guī)的編程代碼如下:,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.ByCente
12、rPointRadius(myPoint,dist);,可視化編程的過程如下:,3.4,畫圓,,兩個(gè)不同的方法,得到同樣的結(jié)果,如下:,四、,Dynamo,和,Revit,交互,Revit,的層級(jí)結(jié)構(gòu)(族類別、族、族類型、實(shí)例),,4.1,獲取,Revit,中的圖元,Dynamo,中提供選擇,Revit,圖元的節(jié)點(diǎn),,4.1,獲取,Revit,中的圖元,在左側(cè)項(xiàng)目樹下面,展開,Revit-> Selection,,單擊“,Select Model Element”,,,4.2,手動(dòng)選擇,Revit,中的圖元,點(diǎn)擊“選擇”按鈕,在,Revit,中選擇構(gòu)件,可以看到如下窗口,已經(jīng)返回選擇構(gòu)建的,I
13、D,然后在搜索框輸入,Name,,單擊“獲取圖元名稱”,,4.2,手動(dòng)選擇,Revit,中的圖元,有了這兩個(gè)后,可以獲取選中元素的名稱。,用,Python,腳本調(diào)用,Revit,標(biāo)準(zhǔn)彈窗,TaskDialog,。搜索框輸入,Python,,單擊“,Python Script”,。雙擊腳本組件的空白區(qū)域,輸入腳本。運(yùn)行如下所示:,,4.3,開關(guān),Revit,預(yù)覽,缺省情況下,在,Dynamo,中生成的點(diǎn)、線等圖形元素,會(huì)在,Revit,圖形界面中有一個(gè)對(duì)應(yīng)的顯示,請(qǐng)注意,僅僅是藍(lán)色高亮的點(diǎn)、線顯示,非實(shí)際,Revit,中存在的。,,有時(shí)候這樣在,Revit,中的運(yùn)行中,點(diǎn)集比較密時(shí),這種密集的顯
14、示會(huì)影響在,Revit,內(nèi)的后繼操作,因此有時(shí)候需要能夠?qū)⑵潢P(guān)閉,不影響在,Revit,的手動(dòng)操作。,,這種顯示方式可以在,Dynamo,內(nèi)進(jìn)行切換,方法為下拉菜單:,【,視圖,】=》【,背景三維預(yù)覽,】=》【,可用預(yù)覽,】=》【Revit,背景預(yù)覽,】,,如下圖所示:,,4.4,單位處理,Dynamo,和,Revit,結(jié)合地很好,除了內(nèi)部單位不一致。,Dynamo,里不帶單位的數(shù)值都會(huì)認(rèn)為是以“米”為單位。,Revit,里面默認(rèn)單位是毫米。,五、,Dynamo,高級(jí)開發(fā),,5.1,橋梁隧道高級(jí)建模,東成西就:一個(gè)技術(shù)流派的高手,精于研究,BIM,在水利行業(yè)的應(yīng)用,知名博客博主!,職業(yè):水利工程師, Revit,煉金術(shù),-Dynamo,基礎(chǔ)實(shí)戰(zhàn)教程,》,61,謝謝大家!,Revit,高級(jí)應(yīng)用,Dynamo,可視化編程培訓(xùn),