Rhino.Inside®.Revit 入门指引(中文版)

关于 Rhino.Inside®

Rhino.Inside® 是随同 Rhino 7 开发的一个开源项目,目的是为了让 Rhino 与 Grasshopper 能在类似 RevitAutoCAD 等其他 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

  • 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 网站下载 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 中建立一个简单的单一墙体。

2. 点击 Grasshopper 图标,从 Params > Revit 面板中增加 Graphical Element 参数,如下图所示。

760600600▲ 从 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 中自定义符合您工作流程的运算器。

创建 Revit 构件

前面示范如何利用 Grasshopper 中的 Revit 组件来转换 Revit 几何对象为 Rhino 几何物件,Grasshopper 中还内置了很多专门为 Revit 定制的运算器,下面将示范如何利用这些运算器来创建 Revit 构件。

提示:

在 Revit 中创建一个简单的墙体会需要用到下面这些运算器:

  • 建立墙体直线(用起点与终点来定义)
  • 墙体类型
  • 放置墙体的楼层
  • 墙体高度

1. 首先从 Revit 中打开 Rhino,并绘制一条直线。

2. 从 Revit 中打开 Grasshopper,使用 Curve 运算器将前面的直线载入 Grasshopper

▲ 将 Rhino 中的直线载入 Grasshopper

3. 请准备好下面这些运算器:

▲ 需要准备的相关运算器

您可以分别从这些位置找到这些运算器,如下图所示:

▲Params>Geometry>Curve
▲ 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 运行环境中,这样可以让建筑师、工程师更加有效的探索设计空间并找到更多新颖的解决方案。

打开我们前面做的小练习,您现在可以动态调整一些参数,如下图所示。

▲ 根据需要动态调整参数示范

GHPython in 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 的符号导入脚本。

# adding references to the System, RhinoInside

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# 可以扩展无限可能…

注意事项

Rhino.Inside.Revit 是作为 Revit 的一个附加模块在 Revit 内部运行,它和众多其他 Revit 的附加模块一样,首次加载会需要一些时间来运行,它需要把整个 Rhino 与 Grasshopper 加载至 Revit 内部。

RIR 目前目前处于 Beta 阶段,可能会存在一些我们未曾发现的错误,如果发现请来信告诉我们。

文件下载:本文中用到的部分测试文件请至 Rhino 原厂微信公众号 [ Rhino3D ] 中回复 RIR01 即可下载。

此条目发表在Rhino 7, v7 新功能, 参数化设计, 建筑分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注

*