Rhino.Inside.Revit 入門(mén)指引(中文版)


作者:Jessesn

關(guān)于 Rhino.Inside?
Rhino.Inside??是隨同?Rhino 7?開(kāi)發(fā)的一個(gè)開(kāi)源項(xiàng)目,目的是為了讓?Rhino?與?Grasshopper?能在類(lèi)似?Revit、AutoCAD?等其他?64?位程序內(nèi)無(wú)縫運(yùn)行。它不僅能完美地進(jìn)行數(shù)據(jù)轉(zhuǎn)化,還能為其他程序增加曲面造型與參數(shù)化設(shè)計(jì)的能力, 包括:
可以在其他程序以?xún)?nèi)置插件的方式啟動(dòng) Rhino 或 Grasshopper;
其他程序中直接利用 Rhino 或 Grasshopper 建模;
可以在 Grasshopper 與 Rhino 插件中調(diào)用其他的應(yīng)用程序接口;
可以在其他程序的插件中調(diào)用 Rhino 的應(yīng)用接口;
在其他程序中利用 Rhino 與 Grasshopper 來(lái)創(chuàng)建原生幾何物件;
RIR(Rhino.Inside.Revit)?是這些項(xiàng)目中最典型的一個(gè)案例,利用?RIR?可以把?Rhino 7?完全內(nèi)置于?Revit?中,Revit 用戶(hù)可以象使用其他的一些附加模塊一樣來(lái)使用?Rhino 7,當(dāng)然也包括?Grasshopper?與?RhinoPython.

準(zhǔn)備與安裝
1.下載?Rhino 7 與 Rhino.Inside.Revit
Rhino.Inside.Revit Beta 版下載地址:https://www.rhino3d.com/download/rhino.inside-revit/7/wip
Rhino 7(90天全功能版)下載地址:https://www.rhino3d.com/download/rhino-for-windows/7/evaluation
提示:?
您也可以從?Food4Rhino?網(wǎng)站下載?Rhino.Inside.Revit?最新的安裝包。
2.安裝 Rhino 7.
確定有完整地安裝 Rhino 7 且未出現(xiàn)錯(cuò)誤;
Rhino 7 安裝完成后可以正常運(yùn)行且未出現(xiàn)任何授權(quán)相關(guān)的錯(cuò)誤;
3.確定您有已經(jīng)可以正常運(yùn)行的?Autodesk Revit?,支持的版本包括 Revit 2018 - 2021.
4.安裝 Rhino.Inside.Revit, 根據(jù)安裝指引完成所有的安裝操作即可。
導(dǎo)入 Rhino.Inside.Revit
1.完成所有的準(zhǔn)備工作之后打開(kāi)?Revit,會(huì)提示您載入附加模塊?Rhino.Inside.Revit,建議你選擇“總是載入”。

2. 現(xiàn)在您應(yīng)該會(huì)在“附加模塊”內(nèi)發(fā)現(xiàn)?Rhinoceros.

3. 點(diǎn)擊?Rhino?圖標(biāo)開(kāi)始加載?Rhino.Inside.Revit,這時(shí) Revit 在后臺(tái)將 Rhino 7 加載至其內(nèi)存且會(huì)驗(yàn)證 Rhino 7 授權(quán)的有效性。加載過(guò)程中 Rhino 相關(guān)的工具列將會(huì)在 Revit 中顯示,如下圖所示:

提示:?
通過(guò)這組工具列你可以訪(fǎng)問(wèn)
Rhino 7
Grasshopper (帶有定制的 Revit 運(yùn)算器組)
RhinoPython (可以訪(fǎng)問(wèn) Revit API)
如果想了解 Rhino.Inside.Revit 截面的完整工具列表與相關(guān)說(shuō)明請(qǐng)?jiān)L問(wèn):https://www.rhino3d.com/inside/revit/beta/reference/rir-interface
如果安裝過(guò)程中出現(xiàn)相關(guān)疑問(wèn)請(qǐng)?jiān)L問(wèn):https://www.rhino3d.com/inside/revit/beta/reference/known-issues
內(nèi)置 Revit 的 Grasshopper?
Grasshopper 是 RIR最主要、最重要的特征,點(diǎn)擊 Rhinoceros 欄中的 Grasshopper 圖標(biāo)就可以在 Revit 中直接調(diào)出 Grasshopper, 如下圖所示。

提示:?
Grasshopper 中有兩組運(yùn)算器,一組位于Params > Revit Primitives, 另外一組為專(zhuān)門(mén)的 Revit 系列工具合集欄。
Revit 系列工具組圖標(biāo)能讓用戶(hù)比較直觀(guān)的了解其功能,如下圖所示基于顏色的分類(lèi)操作(包括查詢(xún)、分析、修改與創(chuàng)建等)。這一系列的應(yīng)用圖標(biāo),用來(lái)顯示不同的類(lèi)型、標(biāo)識(shí)或其他設(shè)計(jì)相關(guān)的數(shù)據(jù)類(lèi)型,包括:

想了解更多運(yùn)算器基礎(chǔ)操作指引請(qǐng)?jiān)L問(wèn):
https://www.rhino3d.com/inside/revit/beta/guides/rir-grasshopper
提取 Revit 幾何物件
先教大家如何在 Rhino 中簡(jiǎn)單定義一個(gè)腳本,用來(lái)提取 Revit 中的幾何物件。Grasshopper 是迄今為止 RIR 中最棒的附加模塊,Revit 用戶(hù)可以利用它來(lái)極大地提升項(xiàng)目設(shè)計(jì)效率。
1. 首先在 Revit 中建立一個(gè)簡(jiǎn)單的單一墻體。

2. 點(diǎn)擊?Grasshopper?圖標(biāo),從?Params > Revit?面板中增加?Graphical Element?參數(shù),如下圖所示。

3. 使用?Graphical Element?將前面在 Revit 中建立的墻體載入 Grasshopper 中,可以再接入一個(gè) Panel 運(yùn)輸器查看結(jié)果。

4. 找到?Revit工具組>Element>Element Geometry,與前面的?Graphical Element?連接。這樣就可以把 Revit 的墻體轉(zhuǎn)換為?Brep?(方便其他非 Revit 組件識(shí)別這個(gè)幾何物件),進(jìn)而可以在 Grasshopper 中做更多的操作。

和其他的 Grasshopper 幾何運(yùn)算器一樣,最終輸出的幾何物件會(huì)同時(shí)顯示在 Rhino 與 Revit 的視窗中,如下圖所示。

現(xiàn)在您會(huì)發(fā)現(xiàn)在 Revit 中使用 Grasshopper 是如此的方便、簡(jiǎn)單,簡(jiǎn)直就象 Grasshopper 原生于Revit 一樣,不僅僅可以使用 Revit 工具組中的運(yùn)算器,還可以使用 Grasshopper 中的腳本運(yùn)算器 (Python 與 C#)來(lái)訪(fǎng)問(wèn) Rhino 或是 Revit 的 API, 而且還可以根據(jù)你的設(shè)計(jì)或項(xiàng)目需要在 Grasshopper 中自定義符合您工作流程的運(yùn)算器。
創(chuàng)建 Revit 構(gòu)件
前面示范如何利用 Grasshopper 中的 Revit 組件來(lái)轉(zhuǎn)換 Revit 幾何對(duì)象為 Rhino 幾何物件,Grasshopper 中還內(nèi)置了很多專(zhuān)門(mén)為 Revit 定制的運(yùn)算器,下面將示范如何利用這些運(yùn)算器來(lái)創(chuàng)建 Revit 構(gòu)件。
提示:
在 Revit 中創(chuàng)建一個(gè)簡(jiǎn)單的墻體會(huì)需要用到下面這些運(yùn)算器:
建立墻體直線(xiàn)(用起點(diǎn)與終點(diǎn)來(lái)定義)
墻體類(lèi)型
放置墻體的樓層
墻體高度
1. 首先從 Revit 中打開(kāi) Rhino,并繪制一條直線(xiàn)。

2.?從 Revit 中打開(kāi) Grasshopper,使用?Curve?運(yùn)算器將前面的直線(xiàn)載入?Grasshopper.

3. 請(qǐng)準(zhǔn)備好下面這些運(yùn)算器。

您可以分別從這些位置找到這些運(yùn)算器,如下圖所示。






4.把這些運(yùn)輸連接起來(lái)即可,如下圖所示,同時(shí)您會(huì)發(fā)現(xiàn) Rhino 7 與 Revit 的視窗會(huì)同時(shí)出現(xiàn)。

提示:?
如果您還需要使用 Grasshopper 的其他非 Revit 運(yùn)算器進(jìn)行其他的一些計(jì)算,建議 Wall 后面增加 Element Geometry 來(lái)進(jìn)行轉(zhuǎn)換為 Brep,以方便非 Revit 運(yùn)算器能有效識(shí)別。

Grasshopper 動(dòng)態(tài)交互
對(duì)于 Grasshopper 這樣的圖形化編程工具來(lái)說(shuō),其最大特色就是動(dòng)態(tài)交互,RIR 將這一特色完全帶入 Revit 運(yùn)行環(huán)境中,這樣可以讓建筑師、工程師更加有效的探索設(shè)計(jì)空間并找到更多新穎的解決方案。
打開(kāi)我們前面做的小練習(xí),您現(xiàn)在可以動(dòng)態(tài)調(diào)整一些參數(shù),如下圖所示。

GHPython in Revit
Rhino.Inside.Revit 是讓 Rhino 在 Revit 內(nèi)部運(yùn)行,因而 Rhino 和 Grasshopper 的插件也都可以訪(fǎng)問(wèn) Revit API。因此 Python 的腳本可以同時(shí)使用 Rhino API、Grasshopper API 與 Revit API,進(jìn)而會(huì)讓 Rhino 與 Grasshopper 中的 Python 腳本功能成倍提高。除了這些 API 之外,Rhino.Inside.Revit 的附加模塊還提供了很多額外的功能,主要用于將 Rhino/Grasshopper 的數(shù)據(jù)離線(xiàn)轉(zhuǎn)換為 Revit, 或是將 Revit 的數(shù)據(jù)轉(zhuǎn)換為 Rhino/Grasshopper.
來(lái)看看下面這個(gè) Python 腳本范例, 它會(huì)把前面提到的所有 API 的符號(hào)導(dǎo)入腳本。

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è)腳本范例,我們還需要還需要增加下面這行代碼:
G = [x.ToBrep() for x in E.Geometry[DB.Options()]]
使用?Revit API?【.Geometry[DB.Options()])】來(lái)讀取輸入的 Revit 構(gòu)件?E, 然后經(jīng)由 RIR API 提供的功能程序?qū)?Revit 的幾何物件轉(zhuǎn)換為 Rhino【Convert.ToRhon()】,最后由 Grasshopper 輸出 Rhino幾何物件。

提示:?
Rhino.Inside.Revit 已經(jīng)是一個(gè)非常強(qiáng)大的工具,但使用 Python 與 C# 可以擴(kuò)展無(wú)限可能...
注意事項(xiàng)
Rhino.Inside.Revit 是作為 Revit 的一個(gè)附加模塊在 Revit 內(nèi)部運(yùn)行,它和眾多其他 Revit 的附加模塊一樣,首次加載會(huì)需要一些時(shí)間來(lái)運(yùn)行,它需要把整個(gè) Rhino 與 Grasshopper 加載至 Revit 內(nèi)部。
RIR 目前目前處于 Beta 階段,可能會(huì)存在一些我們未曾發(fā)現(xiàn)的錯(cuò)誤,如果發(fā)現(xiàn)請(qǐng)來(lái)信告訴我們。
文件下載:本文中用到的部分測(cè)試文件請(qǐng)至 Rhino 原廠(chǎng)微信公眾號(hào) [?Rhino3D?] 中回復(fù)?RIR01?即可下載。

2020冬季 面授課程?上海 深圳?1月開(kāi)課
請(qǐng)點(diǎn)擊公眾號(hào)底部菜單了解每門(mén)課程的詳細(xì)介紹



如何購(gòu)買(mǎi)?正版?Rhino 7
Rhino 7?已經(jīng)上市,用戶(hù)可進(jìn)入Rhino原廠(chǎng)中國(guó)淘寶店鋪?taobao.rhino3d.asia?在線(xiàn)購(gòu)買(mǎi)。
從舊版升級(jí)到 Rhino 7??
Rhino 7 商業(yè)升級(jí)版?標(biāo)準(zhǔn)價(jià) ¥4600/套。促銷(xiāo)優(yōu)惠期價(jià)格?¥3500/套。促銷(xiāo)優(yōu)惠有效期至2021年3月10日截止。
Rhino 7 教育升級(jí)版?標(biāo)準(zhǔn)價(jià) ¥800/套。僅設(shè)計(jì)專(zhuān)業(yè)在校學(xué)生。
原廠(chǎng)面授課程 + Rhino 7 套裝
參加原廠(chǎng)面授課程的學(xué)員購(gòu)買(mǎi) Rhino 7 還會(huì)有額外的特殊優(yōu)惠疊加!商業(yè)版疊加優(yōu)惠 ¥600、教育版疊加優(yōu)惠 ¥300(升級(jí)版除外)。
