編輯文件的參數將遵循先前諸節學習的課程。在本節中,我們將瞭解編輯參數,這些參數不會影響元素的幾何性質,而是會準備供記錄的 Revit 檔案。
在以下練習中,我們將使用平面節點的基本偏差,以建立供記錄的 Revit 圖紙。在以參數式方式定義的屋頂結構上,每個面板都有不同的偏差值,我們希望使用顏色以及安排自適應點來指定值的範圍,以便交給正面顧問、工程師或承包商。
平面節點的偏差將計算一組四個點與各點之間最佳擬合平面的距離。這是快速輕鬆的建構研究方式。
按一下下方的連結下載範例檔案。
附錄中提供範例檔案的完整清單。
從本節的 Revit 檔案開始 (或繼續使用上一節課的檔案)。此檔案的屋頂上具有一系列 ETFE 面板。我們在此練習中會參考這些面板。
在圖元區加入 Family Types 節點,然後選擇 「ROOF-PANEL-4PT」。
將此節點插入 All Elements of Family Type 節點,以便將 Revit 的所有元素匯入 Dynamo。
使用 AdaptiveComponent.Locations 節點查詢每個元件的自適應點位置。
使用 Polygon.ByPoints 節點從這四點建立多邊形。請注意,現在我們已在 Dynamo 中建立抽象版本的面板化系統,而無需匯入 Revit 元素的完整幾何圖形。
使用 Polygon.PlaneDeviation 節點計算平面偏差。
就像上一個練習一樣,只是為了好玩,接下來我們根據平面偏差設定每個面板的孔徑比。
在圖元區加入 Element.SetParameterByName 節點,並將自適應元件連接至 element 輸入。將名為 「Aperture Ratio」 的 Code Block 連接至 parameterName 輸入。
我們無法將偏差結果直接連接至值輸入,因為需要將值重新對映到參數範圍。
使用 Math.RemapRange,透過在 Code Block 中輸入
0.15; 0.45;
,將偏差值重新對映到從 0.15 到 0.45 之間的範圍。將這些結果重新插入 Element.SetParameterByName 的 value 輸入。
回到 Revit,我們會 稍微 理解曲面上孔徑的變更。
拉近時,可以更清晰地看到封閉面板向曲面的轉角加重。開放轉角朝向頂部。轉角代表偏差較大的區域,而凸度具有最小的曲率,因此這合乎邏輯。
設定孔徑比不會清楚展示屋頂上面板的偏差,我們還要變更實際元素的幾何圖形。假設我們只希望從製造可行性的觀點研究偏差。根據記錄的偏差範圍對面板上色會很有幫助。我們可以透過以下一系列步驟,採用與上述步驟非常相似的程序來達成。
移除 Element.SetParameterByName 及其輸入節點,並加入 Element.OverrideColorInView。
在圖元區加入 Color Range 節點,並插入 Element.OverrideColorInView 的 color 輸入。我們仍必須將偏差值連接至顏色範圍,以建立漸層。
將游標懸停在 value 輸入上,我們可以看到輸入的值必須介於 0 與 1 之間,才能將顏色對映至每個值。我們需要將偏差值重新對映到此範圍。
使用 Math.RemapRange,將平面偏差值重新對映到從 0 到 1 之間的範圍 (注意:您也可以使用 MapTo 節點來定義來源範圍)。
將結果插入 Color Range 節點。
請注意,我們的輸出是一系列顏色,而不是一系列數字。
如果您要設定為「手動」,請按一下 「執行」 。從現在起,您應該能設定為「自動」。
返回 Revit,我們可以看到更清晰的漸層,該漸層根據顏色範圍表示平面偏差。如果我們希望自訂顏色會怎樣呢?請注意,最小偏差值以紅色表示,這似乎與我們的預期相反。我們希望以紅色表示最大偏差,以更冷的顏色表示最小偏差。接下來回到 Dynamo 並修正此問題。
使用 Code Block,在不同的兩行程式碼中加入兩個數字:
0;
與255;
。將適合的值插入兩個 Color.ByARGB 節點,以建立紅色與藍色。
使用這兩種顏色建立清單。
將此清單插入 Color Range 的 colors 輸入,然後查看自訂顏色範圍更新。
回到 Revit,現在我們可以更深刻理解轉角的最大偏差區域。請記住,此節點用於在視圖中取代顏色,因此如果一組圖面中包含著重於特定類型分析的特定圖紙,該節點會很有幫助。
在 Revit 中選取一個 ETFE 面板,我們可以看到有四個實體參數,分別是 XYZ1、XYZ2、XYZ3 與 XYZ4。這些參數在建立之後都是空白的。這些是需要值的文字參數。我們將使用 Dynamo 將自適應點位置寫入每個參數。這有助於在需要將幾何圖形傳送給正面顧問的工程師時實現互通性。
在範例圖紙中,我們建立了一個很大的空白明細表。XYZ 參數是 Revit 檔案中的共用參數,我們可藉此將其加入明細表中。
拉近,XYZ 參數都尚未填寫。前兩個參數由 Revit 負責。
為了寫入這些值,我們將執行複雜的清單作業。圖表本身很簡單,但概念很大程度上依賴於〈清單〉一章中討論的清單對映。
使用兩個節點選取所有自適應元件。
使用 AdaptiveComponent.Locations 擷取每個點的位置。
將這些點轉換為字串。請記住,該參數是文字參數,因此我們需要輸入正確的資料類型。
建立包含四個字串的清單,這四個字串定義要變更的參數:XYZ1、XYZ2、XYZ3 與 XYZ4。
將此清單插入 Element.SetParameterByName 的 parameterName 輸入。
將 Element.SetParameterByName 連接至 List.Combine 的 combinator 輸入。將 adaptive components 連接至 list1。將物件的 String 連接至 list2。
我們在此列出對映,因為要為每個元素寫入四個值,這會建立複雜的資料結構。List.Combine 節點會定義資料階層中下一層級的作業。這是為什麼 Element.SetParameterByName 的 element 和 value 輸入皆留空。List.Combine 會根據連接順序,將其輸入的子清單連接至 Element.SetParameterByName 的空白輸入。
在 Revit 中選取面板,現在我們可以看到每個參數都具有字串值。實際上,我們可以建立更簡單的點 (X,Y,Z) 寫入格式。在 Dynamo 中使用字串作業即可實現該功能,但這裡我們略過此內容,而繼續討論本章內容。
已填寫參數的範例明細表視圖。
現在,每個 ETFE 面板都具有針對每個自適應點而寫入的 XYZ 座標,表示用於製作的每個面板的轉角。