添加老师微信免费领取价值599元资料包
跳过,直接下载下载app免费领取会员
Rhino.Inside® 是随同 Rhino 7 开发的一个开源项目,目的是为了让 Rhino 与 Grasshopper 能在类似 Revit、AutoCAD 等其他 64 位程序内无缝运行。它不仅能完美地进行数据转化,还能为其他程序增加曲面造型与参数化设计的能力, 包括:
可以在其他程序以内置插件的方式启动 Rhino 或 Grasshopper;
其他程序中直接利用 Rhino 或 Grasshopper 建模;
可以在 Grasshopper 与 Rhino 插件中调用其他的应用程序接口;
可以在其他程序的插件中调用 Rhino 的应用接口;
在其他程序中利用 Rhino 与 Grasshopper 来创建原生几何物件;
RIR(Rhino.Inside.Revit) 是这些项目中最典型的一个案例,利用 RIR 可以把 Rhino 7 完全内置于 Revit 中,Revit 用户可以象使用其他的一些附加模块一样来使用 Rhino 7,当然也包括 Grasshopper 与 RhinoPython.
1.下载 Rhino 7 与 Rhino.Inside.Revit
2.安装 Rhino 7.
确定有完整地安装 Rhino 7 且未出现错误;
Rhino 7 安装完成后可以正常运行且未出现任何授权相关的错误;
3.确定您有已经可以正常运行的 Autodesk Revit®,支持的版本包括 Revit 2018 - 2021.
4.安装 Rhino.Inside.Revit, 根据安装指引完成所有的安装操作即可。
导入 Rhino.Inside.Revit
1.完成所有的准备工作之后打开 Revit,会提示您载入附加模块 Rhino.Inside.Revit,建议你选择“总是载入”。
▲ 首次加载请选择⌜总是载入⌟
2. 现在您应该会在“附加模块”内发现 Rhinoceros.
▲ 附加模块中的 Rhinoceros
3. 点击 Rhino 图标开始加载 Rhino.Inside.Revit,这时 Revit 在后台将 Rhino 7 加载至其内存且会验证 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
如果安装过程中出现相关疑问请访问:https://www.rhino3d.com/inside/revit/beta/reference/known-issues
内置 Revit 的 Grasshopper
Grasshopper 是 RIR最主要、最重要的特征,点击 Rhinoceros 栏中的 Grasshopper 图标就可以在 Revit 中直接调出 Grasshopper, 如下图所示。
▲ Revit 中直接调出 Grasshopper
提示:
Grasshopper 中有两组运算器,一组位于Params > Revit Primitives, 另外一组为专门的 Revit 系列工具合集栏。
Revit 系列工具组图标能让用户比较直观的了解其功能,如下图所示基于颜色的分类操作(包括查询、分析、修改与创建等)。这一系列的应用图标,用来显示不同的类型、标识或其他设计相关的数据类型,包括:
▲ 基础颜色显示不同的操作类型
想了解更多运算器基础操作指引请访问:
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 参数,如下图所示。
▲ 从 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 视窗
现在您会发现在 Revit 中使用 Grasshopper 是如此的方便、简单,简直就象 Grasshopper 原生于Revit 一样,不仅仅可以使用 Revit 工具组中的运算器,还可以使用 Grasshopper 中的脚本运算器 (Python 与 C#)来访问 Rhino 或是 Revit 的 API, 而且还可以根据你的设计或项目需要在 Grasshopper 中自定义符合您工作流程的运算器。
前面示范如何利用 Grasshopper 中的 Revit 组件来转换 Revit 几何对象为 Rhino 几何物件,Grasshopper 中还内置了很多专门为 Revit 定制的运算器,下面将示范如何利用这些运算器来创建 Revit 构件。
提示:
在 Revit 中创建一个简单的墙体会需要用到下面这些运算器:
建立墙体直线(用起点与终点来定义)
墙体类型
放置墙体的楼层
墙体高度
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.把这些运输连接起来即可,如下图所示,同时您会发现 Rhino 7 与 Revit 的视窗会同时出现。
▲运算器连接完成后的效果
提示:
如果您还需要使用 Grasshopper 的其他非 Revit 运算器进行其他的一些计算,建议 Wall 后面增加 Element Geometry 来进行转换为 Brep,以方便非 Revit 运算器能有效识别。
▲ 增加 Revit>ElementGeometry
Grasshopper 动态交互
对于 Grasshopper 这样的图形化编程工具来说,其最大特色就是动态交互,RIR 将这一特色完全带入 Revit 运行环境中,这样可以让建筑师、工程师更加有效的探索设计空间并找到更多新颖的解决方案。
打开我们前面做的小练习,您现在可以动态调整一些参数,如下图所示。
▲ 根据需要动态调整参数示范
Rhino.Inside.Revit 是让 Rhino 在 Revit 内部运行,因而 Rhino 和 Grasshopper 的插件也都可以访问 Revit API。因此 Python 的脚本可以同时使用 Rhino API、Grasshopper API 与 Revit API,进而会让 Rhino 与 Grasshopper 中的 Python 脚本功能成倍提高。除了这些 API 之外,Rhino.Inside.Revit 的附加模块还提供了很多额外的功能,主要用于将 Rhino/Grasshopper 的数据离线转换为 Revit, 或是将 Revit 的数据转换为 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, 然后经由 RIR API 提供的功能程序将 Revit 的几何物件转换为 Rhino【Convert.ToRhon()】,最后由 Grasshopper 输出 Rhino几何物件。
▲ GHPython 转换 Revit 物件为 Rhino 物件示范
提示:
Rhino.Inside.Revit 已经是一个非常强大的工具,但使用 Python 与 C# 可以扩展无限可能...
15359439502(林老师)
2158157721 咨询