Dynamo數(shù)據(jù)淘金——02//批量創(chuàng)建標高與圖紙

本節(jié)給初學者介紹了通過列表進行批量創(chuàng)建標高與圖紙的方法,其他內容也可以舉一反三.文中對于節(jié)點的含義沒做過分解讀,大家多使用自然明白.可以通過右鍵搜索所需節(jié)點.批量創(chuàng)建標高與圖紙并不是目的,而是讓初學者理解大概邏輯,為后續(xù)大量的數(shù)據(jù)處理打下基礎.為了便于理解,文中引入了一點概念.初次學習不理解也無妨,后續(xù)會慢慢感受其含義.
默認大家對BIM有基本了解,知道Dynamo的打開與節(jié)點創(chuàng)建操作.

1、打開Revit
首先新建一個建筑樣板的項目文件,通過立面查看默認標高,默認生成了Level 1和 Level 2的標高,點擊Level 2,可以看到屬性中的一些參數(shù),通過修改這些參數(shù)當然可以修改其屬性.
比如通過修改立面高度參數(shù),可以修改標高,但我們下一步打算使用Dynamo修改.
2、列表的概念
進行下一步之前,要引入一點概念.
我們要處理的數(shù)據(jù)如果以Excel表示,那么主要有兩個基本單位構成--字符串(String)與數(shù)字(Number),數(shù)字可以進行算數(shù)運算與比較運算,字符串則可以進行合并\切割\替換等等.
字符串與數(shù)字這兩個基本單位按照一定的邏輯組織在一起,形成了數(shù)據(jù)結構.這些數(shù)據(jù)結構主要有列表(List)、元組(Tuple)、字典(Dict)、集合(Set),這些是Python語言中的說法.目前,我們僅以列表(List)來描述Excel數(shù)據(jù).
比如以下表格:

在Excel表格中,每一行是一個列表(List),第一行可以表示成如下形式:
List_0 = [‘專欄名稱’,’作者’,’適宜人群’,’評分’]
第二行可以表示成如下形式:
List_1 = [‘Dynamo數(shù)據(jù)淘金’,’非天生建筑師’, ’BIM設計師’,’100’]
再進一步,以List_0為例,列表中的每個內容稱為元素(Item),比如’作者’.
由于列表中的內容是按照一定順序排列的,因此每個內容(Item)在列表中有固定的位置,稱之為索引(Index).比如’作者’在列表中的位置是第2個,索引(Index)理論上應該是2,但由于計算機是從0開始計數(shù)的,因此’作者’的索引(Index)是1, ‘專欄名稱’的索引(Index)是0,依此類推.
知道了列中的元素(Item)與其對應索引(Index)的關系,就可以根據(jù)索引(Index)獲得對應元素(Item),反之亦然.
List_0[1]---根據(jù)索引返回元素---’作者’
List_0[‘專欄名稱’] ---根據(jù)元素返回索引---0
我們知道List_0與List_1共同組成了這個表格數(shù)據(jù).如果我們用Dynamo的顯示方式表達,則為:

也就是說,Excel數(shù)據(jù)是通過嵌套的列表(List)進行顯示的,整個表單(sheet)是一個大列表,然后里面有兩個元素,每個元素又是一個小列表.我們要注意,Dynamo中列表的元素是縱向顯示的,但其實對應Excel表格中的是一行,而不是一列.
3.建立節(jié)點
明確了這樣一個大邏輯之后,我們開始進入Dynamo.初學者不明白節(jié)點也無妨,照著做就行.
按照圖示分別建立以下節(jié)點(Categories—All elements of category—Elements.Parameters—String from object—Watch)

這樣就獲取了標高的屬性列表.
我們試著修改一下兩個標高的立面高度.
由于是兩個標高,因此用列表的形式進行表達.改變元素屬性使用Element.SetParametersByName節(jié)點.
[“立面”,”立面”]表示要修改的參數(shù)名稱都是”立面”.
[-100,5000]表示分別對應的立面數(shù)值為-100,5000.
注意在Code Block節(jié)點中書寫時,記得后面要分號.

點擊運行即可完成修改(將模式改為手動).
恭喜,我們完成了第一步!
4.批量創(chuàng)建標高
修改標高的前提是建立標高,我們這就進入正題.我們找到創(chuàng)建標高的節(jié)點(Level.ByElevationAndName),通過名稱與立面高度創(chuàng)建標高.

運行后,即創(chuàng)建了七個標高.

當然,要說比手動創(chuàng)建多么方便,也不能這么說,因為畢竟數(shù)量有限.但這個邏輯是很重要的.
默認創(chuàng)建的標高并沒有創(chuàng)建對應的樓層平面,
我們加入節(jié)點FloorPlanView.ByLevel,即可完成樓層平面創(chuàng)建.

5.批量創(chuàng)建圖紙
再下一步,同樣可以批量創(chuàng)建圖紙.按照圖示節(jié)點,即批量完成圖紙創(chuàng)建,且每個圖紙上有一個樓層平面視圖.

完成后的Revit界面如下:

實際上,數(shù)據(jù)量過大時,要以Excel文檔形式輸入輸出才最高效,當然,我們這里只是學習的開始,知道列表這個概念即可.