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