建立
Last updated
Last updated
您可以在 Dynamo 中建立具有完整參數式控制的一系列 Revit 元素。藉由 Dynamo 中的 Revit 節點,可以將元素從一般幾何圖形匯入至特定的品類類型 (例如牆與地板)。在本節中,我們將著重講解使用自適應元件以參數式方式匯入彈性元素。
自適應元件是非常適用於生產應用的彈性族群品類。在實體化之後,您可以建立由自適應點的基本位置驅動的複雜幾何元素。
以下是族群編輯器中一個三點自適應元件的範例。這將產生由每個自適應點的位置定義的桁架。在以下練習中,我們將使用此元件在正面產生一系列桁架。
自適應元件是採用互通性最佳實務的良好範例。我們可以定義基本自適應點,以建立一系列自適應元件。此外,若將此資料傳輸至其他程式,我們可以將幾何圖形精簡為簡單的資料。使用程式 (例如 Excel) 執行匯入與匯出將遵循類似的邏輯。
假設正面顧問希望瞭解桁架元素的位置,而無需剖析完全連接的幾何圖形。在準備製造時,顧問可以參考自適應點的位置,以便在諸如 Inventor 等程式中重新產生幾何圖形。
藉由我們將在以下練習中設置的工作流程,我們可以存取所有此類資料,同時建立用於建立 Revit 元素的定義。透過此程序,我們可以將概念化、記錄與製造合併為順暢的工作流程。此作業會建立更智慧、更高效的程序以實現互通性。
以下第一個練習將講解 Dynamo 如何參考用於建立 Revit 元素的資料。為了產生多個自適應元件,我們定義了清單的清單,其中每個清單都包含三點,表示自適應元件的每個點。在 Dynamo 中管理資料結構時,我們將記住這一點。
將參數式 Dynamo 幾何圖形匯入至 Revit 的另一種方法是使用 DirectShape。總之,DirectShape 元素與相關類別支援在 Revit 文件中儲存外部建立的幾何造型。幾何圖形可以包括封閉實體或網格。DirectShape 主要用於在未提供足夠的資訊以建立「真實」的 Revit 元素時,匯入其他資料格式 (例如 IFC 或 STEP) 的造型。與 IFC 與 STEP 工作流程類似,DirectShape 功能可以成功將 Dynamo 建立的幾何圖形匯入 Revit 專案中作為真實的元素。
我們來逐步進行第二個練習,將 Dynamo 幾何圖形作為 DirectShape 匯入 Revit 專案。使用此方法,我們可以指定所匯入幾何圖形的品類、材料與名稱等所有內容,同時保持 Dynamo 圖表的參數式連結。
按一下下方的連結下載範例檔案。
附錄中提供完整的範例檔案清單。
從本節的範例檔案開始 (或繼續使用上一節課的 Revit 檔案),我們會看到同一個 Revit 量體。
這是開啟的檔案。
這是我們使用 Dynamo 建立的桁架系統,並採用智慧方式將其連結至 Revit 量體。
我們此前使用的是 「Select Model Element」 與 「Select Face」 節點,現在我們在幾何圖形階層中更進一步,使用 「Select Edge」。將 Dynamo 求解器設定為 「自動」 執行後,圖表會根據 Revit 檔案中的變更而持續更新。我們將選取的邊已動態連結至 Revit 元素拓樸。只要拓樸* 沒有變更,Revit 與 Dynamo 之間的關聯就會保持連結狀態。
選取釉面玻璃正面最頂端的曲線。它跨越建築的完整長度。如果您無法選取邊,請記住將游標懸停在邊上,然後按一下 「Tab」 鍵,直到所需的邊亮顯為止,由此在 Revit 中選擇供選取的物件。
使用兩個 「Select Edge」 節點,選取表示正面中央處外角的每條邊。
在 Revit 中對正面底部的邊執行相同程序。
Watch 節點顯示出我們現在已在 Dynamo 中建立線。這會自動轉換為 Dynamo 幾何圖形,因為邊本身不是 Revit 元素。這些曲線是我們在正面對自適應桁架進行實體化將使用的參考。
*為了讓拓樸保持一致,我們將參考未額外加入面或邊的模型。雖然參數可變更其造型,但是其建置方式保持一致。
我們需要先接合曲線,並將其合併至一個清單。這樣我們可以將曲線 「分組」 以執行幾何圖形作業。
建立正面中央兩條曲線的清單。
將 List.Create 元件插入 Polycurve.ByJoinedCurves 節點,以便將兩條曲線接合為 polycurve。
建立正面底部兩條曲線的清單。
將 List.Create 元件插入 Polycurve.ByJoinedCurves 節點,以便將兩條曲線接合為 polycurve。
最後,將三條主要曲線 (一條直線與兩條 PolyCurve) 接合到一個清單中。
我們希望利用頂部曲線,它是直線,並能呈現正面的完整跨度。我們將沿這條線建立平面,與我們在清單中歸為一組的一組曲線相交。
運用 Code Block,使用以下語法定義範圍:
0..1..#numberOfTrusses;
將 Integer Slider 插入 Code Block 的輸入。您可能已猜到,這會代表桁架的數量。請注意,滑棒控制從 0 到 1 定義的範圍內的項目數量。
將 Code Block 插入 「Curve.PlaneAtParameter」 節點的 param 輸入,將頂部的邊插入 curve 輸入。這會產生十個平面,均勻分佈在正面的跨度內。
平面是抽象的幾何圖形,表示無限的二維空間。平面非常適合描述等高與相交,正如我們在此步驟中的設置所示。
使用 Geometry.Intersect 節點 (將交織設為笛卡兒積),將 Curve.PlaneAtParameter 插入 Geometry.Intersect 節點的 entity 輸入。將主要 List.Create 節點插入 geometry 輸入。現在,我們可以在 Dynamo 視埠中看到表示每條曲線與定義的平面相交的點。
請注意,輸出是清單的清單的清單。我們為達到目的而使用的清單過多。在此,我們希望進行局部平坦化。我們需要對清單更進一步,對結果執行平坦化。為了執行此作業,我們使用 List.Map 作業,如手冊的清單一章中的討論所示。
將 Geometry.Intersect 節點插入 List.Map 的清單輸入。
將 Flatten 節點插入 List.Map 的 f(x) 輸入。結果將產生 3 個清單,每個清單都包含與桁架數量相等的計數。
我們需要變更此資料。如果我們希望實體化桁架,必須使用與族群中所定義的數量相同的自適應點。這是三點自適應元件,因此我們希望使用的不是各包含 10 個項目 (numberOfTrusses) 的三個清單,而是各包含三個項目的 10 個清單。這樣我們可以建立 10 個自適應元件。
將 List.Map 插入 List.Transpose 節點。現在我們已取得所需的資料輸出。
若要確認資料正確無誤,請在圖元區中加入 Polygon.ByPoints 節點,然後再次查看 Dynamo 預覽。
我們以同樣的方式建立了多邊形,並對自適應元件進行排列。
在圖元區加入 AdaptiveComponent.ByPoints 節點,將 List.Transpose 節點插入 points 輸入。
使用 Family Types 節點,選取 「AdaptiveTruss」 族群,並將其插入 AdaptiveComponent.ByPoints 節點的 FamilyType 輸入。
在 Revit 中,我們現在建立了十個均勻分佈在正面跨度範圍內的桁架。
「調整」圖表,透過變更滑棒將 numberOfTrusses 提高為 30。桁架很多,這並非很現實,但是參數式連結的確有效。驗證後,將 numberOfTrusses 設定為 15。
在最終測試中,透過在 Revit 內選取量體並編輯實體參數,我們可以變更建築的形狀,並看到桁架與之相符。請記住,必須開啟此 Dynamo 圖表,才能看到此更新,一旦該圖表關閉,連結將中斷。
按一下下方的連結下載範例檔案。
附錄中提供完整的範例檔案清單。
首先,開啟本課程的範例檔案 ARCH-DirectShape-BaseFile.rvt。
在 3D 視圖中,我們可以看到上一課的建築量體。
沿著中庭的邊是一條參考曲線,我們會將其用作在 Dynamo 中參考的曲線。
沿著中庭的相對一邊是另一條參考曲線,我們也會在 Dynamo 中對其進行參考。
為了在 Dynamo 中參考幾何圖形,我們將對 Revit 中的每個成員使用 Select Model Element。在 Revit 中選取量體,並使用 Element.Faces 將幾何圖形匯入 Dynamo,現在 Dynamo 預覽中應該可以看到量體。
使用 Select Model Element 與 CurveElement.Curve 將一條參考曲線匯入 Dynamo。
使用 Select Model Element 與 CurveElement.Curve 將另一條參考曲線匯入 Dynamo。
拉遠並平移至範例圖表中的右側,可以看到大型節點群組,這些是幾何圖形作業,將產生 Dynamo 預覽中可見的格架屋頂結構。這些節點是使用手冊的程式碼區塊一節中討論的 將節點轉換為程式碼 功能產生。
結構由三個主要參數驅動,分別是 Diagonal Shift、Camber 與 Radius。
進行縮放,特寫查看此圖表的參數。我們可以調整這些參數,以得到不同的幾何圖形輸出。
將 DirectShape.ByGeometry 節點置於圖元區上,我們可以看到它有四個輸入:geometry、category、material 和 name。
幾何圖形是將要從圖表的幾何圖形建立部分建立的實體
使用下拉式 Categories 節點選擇品類輸入。在此案例中,我們將使用「Structural Framing」。
透過以上的一系列節點選取材料輸入 (雖然在此案例中定義為「預設」會更簡單)。
執行 Dynamo 後,返回 Revit,專案中的屋頂上已存在匯入的幾何圖形。這是結構框架元素,而不是一般模型。Dynamo 的參數式連結保持不變。