添加老師微信免費領取價值599元資料包
跳過,直接下載下載app免費領取會員
Rhino.Inside? 是隨同 Rhino 7 開發(fā)的一個開源項目,目的是為了讓 Rhino 與 Grasshopper 能在類似 Revit、AutoCAD 等其他 64 位程序內(nèi)無縫運行。它不僅能完美地進行數(shù)據(jù)轉化,還能為其他程序增加曲面造型與參數(shù)化設計的能力, 包括:
可以在其他程序以內(nèi)置插件的方式啟動 Rhino 或 Grasshopper;
其他程序中直接利用 Rhino 或 Grasshopper 建模;
可以在 Grasshopper 與 Rhino 插件中調(diào)用其他的應用程序接口;
可以在其他程序的插件中調(diào)用 Rhino 的應用接口;
在其他程序中利用 Rhino 與 Grasshopper 來創(chuàng)建原生幾何物件;
RIR(Rhino.Inside.Revit) 是這些項目中最典型的一個案例,利用 RIR 可以把 Rhino 7 完全內(nèi)置于 Revit 中,Revit 用戶可以象使用其他的一些附加模塊一樣來使用 Rhino 7,當然也包括 Grasshopper 與 RhinoPython.
1.下載 Rhino 7 與 Rhino.Inside.Revit
2.安裝 Rhino 7.
確定有完整地安裝 Rhino 7 且未出現(xiàn)錯誤;
Rhino 7 安裝完成后可以正常運行且未出現(xiàn)任何授權相關的錯誤;
3.確定您有已經(jīng)可以正常運行的 Autodesk Revit?,支持的版本包括 Revit 2018 - 2021.
4.安裝 Rhino.Inside.Revit, 根據(jù)安裝指引完成所有的安裝操作即可。
導入 Rhino.Inside.Revit
1.完成所有的準備工作之后打開 Revit,會提示您載入附加模塊 Rhino.Inside.Revit,建議你選擇“總是載入”。
▲ 首次加載請選擇?總是載入?
2. 現(xiàn)在您應該會在“附加模塊”內(nèi)發(fā)現(xiàn) Rhinoceros.
▲ 附加模塊中的 Rhinoceros
3. 點擊 Rhino 圖標開始加載 Rhino.Inside.Revit,這時 Revit 在后臺將 Rhino 7 加載至其內(nèi)存且會驗證 Rhino 7 授權的有效性。加載過程中 Rhino 相關的工具列將會在 Revit 中顯示,如下圖所示:
▲ Rhino.Inside.Revit 在Revit 中的工具列
提示:
通過這組工具列你可以訪問
Rhino 7
Grasshopper (帶有定制的 Revit 運算器組)
RhinoPython (可以訪問 Revit API)
如果想了解 Rhino.Inside.Revit 截面的完整工具列表與相關說明請訪問:https://www.rhino3d.com/inside/revit/beta/reference/rir-interface
如果安裝過程中出現(xiàn)相關疑問請訪問:https://www.rhino3d.com/inside/revit/beta/reference/known-issues
內(nèi)置 Revit 的 Grasshopper
Grasshopper 是 RIR最主要、最重要的特征,點擊 Rhinoceros 欄中的 Grasshopper 圖標就可以在 Revit 中直接調(diào)出 Grasshopper, 如下圖所示。
▲ Revit 中直接調(diào)出 Grasshopper
提示:
Grasshopper 中有兩組運算器,一組位于Params > Revit Primitives, 另外一組為專門的 Revit 系列工具合集欄。
Revit 系列工具組圖標能讓用戶比較直觀的了解其功能,如下圖所示基于顏色的分類操作(包括查詢、分析、修改與創(chuàng)建等)。這一系列的應用圖標,用來顯示不同的類型、標識或其他設計相關的數(shù)據(jù)類型,包括:
▲ 基礎顏色顯示不同的操作類型
想了解更多運算器基礎操作指引請訪問:
https://www.rhino3d.com/inside/revit/beta/guides/rir-grasshopper
提取 Revit 幾何物件
先教大家如何在 Rhino 中簡單定義一個腳本,用來提取 Revit 中的幾何物件。Grasshopper 是迄今為止 RIR 中最棒的附加模塊,Revit 用戶可以利用它來極大地提升項目設計效率。
1. 首先在 Revit 中建立一個簡單的單一墻體。
▲ Revit 中建立一個簡單的單一墻體
2. 點擊 Grasshopper 圖標,從 Params > Revit 面板中增加 Graphical Element 參數(shù),如下圖所示。
▲ 從 Revit Primitives 中增加 Graphical Element
3. 使用 Graphical Element 將前面在 Revit 中建立的墻體載入 Grasshopper 中,可以再接入一個 Panel 運輸器查看結果。
▲ 從 Revit 中載入墻體
4. 找到 Revit工具組>Element>Element Geometry,與前面的 Graphical Element 連接。這樣就可以把 Revit 的墻體轉換為 Brep (方便其他非 Revit 組件識別這個幾何物件),進而可以在 Grasshopper 中做更多的操作。
▲ 將 Revit 的墻體轉換為 Brep
和其他的 Grasshopper 幾何運算器一樣,最終輸出的幾何物件會同時顯示在 Rhino 與 Revit 的視窗中,如下圖所示。
▲ 幾何物件會同時顯示在 Rhino 與 Revit 視窗
現(xiàn)在您會發(fā)現(xiàn)在 Revit 中使用 Grasshopper 是如此的方便、簡單,簡直就象 Grasshopper 原生于Revit 一樣,不僅僅可以使用 Revit 工具組中的運算器,還可以使用 Grasshopper 中的腳本運算器 (Python 與 C#)來訪問 Rhino 或是 Revit 的 API, 而且還可以根據(jù)你的設計或項目需要在 Grasshopper 中自定義符合您工作流程的運算器。
前面示范如何利用 Grasshopper 中的 Revit 組件來轉換 Revit 幾何對象為 Rhino 幾何物件,Grasshopper 中還內(nèi)置了很多專門為 Revit 定制的運算器,下面將示范如何利用這些運算器來創(chuàng)建 Revit 構件。
提示:
在 Revit 中創(chuàng)建一個簡單的墻體會需要用到下面這些運算器:
建立墻體直線(用起點與終點來定義)
墻體類型
放置墻體的樓層
墻體高度
1. 首先從 Revit 中打開 Rhino,并繪制一條直線。
▲ 在 Rhino 視窗中繪制一條直線
2. 從 Revit 中打開 Grasshopper,使用 Curve 運算器將前面的直線載入 Grasshopper.
▲ 將 Rhino 中的直線載入 Grasshopper
3. 請準備好下面這些運算器。
▲ 需要準備的相關運算器
您可以分別從這些位置找到這些運算器,如下圖所示。
▲Params>Geometry>Curve
▲ Params>Input>Slider
▲ Revit>Input>ModelCategoriesPicker,類型設置為墻
▲ Revit>Input>ElementTypePicker
▲ Revit>Input>Levels Picker
▲ Revit>Wall>Add Wall(Curve)
4.把這些運輸連接起來即可,如下圖所示,同時您會發(fā)現(xiàn) Rhino 7 與 Revit 的視窗會同時出現(xiàn)。
▲運算器連接完成后的效果
提示:
如果您還需要使用 Grasshopper 的其他非 Revit 運算器進行其他的一些計算,建議 Wall 后面增加 Element Geometry 來進行轉換為 Brep,以方便非 Revit 運算器能有效識別。
▲ 增加 Revit>ElementGeometry
Grasshopper 動態(tài)交互
對于 Grasshopper 這樣的圖形化編程工具來說,其最大特色就是動態(tài)交互,RIR 將這一特色完全帶入 Revit 運行環(huán)境中,這樣可以讓建筑師、工程師更加有效的探索設計空間并找到更多新穎的解決方案。
打開我們前面做的小練習,您現(xiàn)在可以動態(tài)調(diào)整一些參數(shù),如下圖所示。
▲ 根據(jù)需要動態(tài)調(diào)整參數(shù)示范
Rhino.Inside.Revit 是讓 Rhino 在 Revit 內(nèi)部運行,因而 Rhino 和 Grasshopper 的插件也都可以訪問 Revit API。因此 Python 的腳本可以同時使用 Rhino API、Grasshopper API 與 Revit API,進而會讓 Rhino 與 Grasshopper 中的 Python 腳本功能成倍提高。除了這些 API 之外,Rhino.Inside.Revit 的附加模塊還提供了很多額外的功能,主要用于將 Rhino/Grasshopper 的數(shù)據(jù)離線轉換為 Revit, 或是將 Revit 的數(shù)據(jù)轉換為 Rhino/Grasshopper.
來看看下面這個 Python 腳本范例, 它會把前面提到的所有 API 的符號導入腳本。
import clr
clr.AddReference('System.Core')
clr.AddReference('RevitAPI') clr.AddReference('RevitAPIUI')
clr.AddReference('RhinoInside.Revit')
# now we can import symbols from various APIs
from System import Enum
# rhinoscript
import rhinoscriptsyntax as rs
# rhino API
import Rhino
# grasshopper API
import Grasshopper
# revit API
from Autodesk.Revit import DB
# rhino.inside utilities
import RhinoInside API
from RhinoInside.Revit import Revit, Convert
# add extensions methods as well
# this allows calling .ToXXX() convertor methods on Revit objects
clr.ImportExtensions(Convert.Geometry)
# getting active Revit document
doc = Revit.ActiveDBDocument
如果要使用上面這個腳本范例,我們還需要還需要增加下面這行代碼:
G = [x.ToBrep() for x in E.Geometry[DB.Options()]]
使用 Revit API 【.Geometry[DB.Options()])】來讀取輸入的 Revit 構件 E, 然后經(jīng)由 RIR API 提供的功能程序?qū)?Revit 的幾何物件轉換為 Rhino【Convert.ToRhon()】,最后由 Grasshopper 輸出 Rhino幾何物件。
▲ GHPython 轉換 Revit 物件為 Rhino 物件示范
提示:
Rhino.Inside.Revit 已經(jīng)是一個非常強大的工具,但使用 Python 與 C# 可以擴展無限可能...
15359439502(林老師)
2158157721 咨詢