Rhino.Inside®.Revit 中文手册 2

这是系列教学【Rhino.Inside®.Revit 中文手册】的第2章,在本章会介绍 Revit 中的 Grasshopper 与 Rhino 的一些基本概念,包括常用的运算器、几何物件显示、图元追踪、脚本计算、单位系统与公差等,也会给大家一些建议以便能更好的发挥 Grasshopper 的效能。

Grasshopper in Revit

| Revit-Aware 运算器

Revit-Aware运算器的图标方便识别组件的功能,如下图所示, 基于颜色的不同而显示不同的操作类型(查询、分析、修改与创建)。也有一系列类似图标的徽章, 以显示组件所使用的数据类型、身份等信息。

例如用于墙体的参数、查询、分析与创建组件的显示如下:

01 Pass-throught 传递运算器

有些场合下需要用到一类特别的传递运算器(Pass-throught),它可以将分析、修改与创建等操作整合到一个运算器中,这样有助于减少运算器的使用数量且能避免界面混乱的问题, 这些运算器会在后台进行拆分, 例如 FlipElement 或MaterialIdentity:

下面以 MaterialIdentity 为例进行说明, 这个运算左端有两组输入,第一个输入参数为 Revit 图元,在这个案例中用来处理材质 Material,接着下面的一些输入参数用来更改 Revit 图元,如图所示:

运算器的右端是一些常用的输出参数,要注意:输入与输出参数并不是总是相同的,Revit 图元会按需创建一些不同的属性,通常会有一些不同的图元与不同属性设置的需求,且有一些输出属性是基于图元计算才能得到输出参数(例如墙体不能把体积作为输入,但可以作为输出参数),另外不是所有的图元属性都可以通过 Revit API 进行调整,如图所示:

传递运算器也可以自定义输出选项,可以用来处理 Revit 输出图元,例如这里填入 Material,如图所示:

现在您应该能理解什么是传递运算器了, 它用来传递输入图元至输出图元,以便于修改或分析这些图元,通常都是串联而不是并联,这样才能很好的保证操作顺序,因为这些目标图元都属于 Revit,Grasshopper 无法确定这些操作的全部含义。

02 Transactional Components 事件运算器

有的 Revit-Aware 运算器需要运行事件来创建图元或修改文档, 搞清楚哪些运算器在每一次的 Grasshopper 脚本执行中被调整而导致文档修改就会变得很重要, 这样可以更好地理解和管理事件,也能更好地执行事件 ( 例如开发者可能会调整图形逻辑并组合更多的事件用以提供性能)。

当这些组件执行具体的事件时会显示深色背景:

提示:如果输入参数与目标图元没有任何调整,下一次执行 Grasshopper 脚本时组件不会有任何的变更,且组件的背景色将会显示会默认的灰色。

| 几何预览

您既可以使用 Grasshopper 运算器上的预览开关来切换打开或关闭 Revit 的预览显示, 也可以从 Revit 的 Rhinoceros 选项卡全局切换预览,如图所示:

| 暂停(停止)计算

您可以在 Revit 的 Rhinoceros 选项卡中暂停(停止) Grasshopper 脚本(程序)的执行, 这对于减少 Revit 大模型的等待时间非常有用,如图所示:

| 图元追踪

图元追踪功能可以让 Grasshopper 替换之前所创建的 Revit 图元,即使是之前保存过的文件之间也可以替换。每个运算器的输入都会记住它添加过哪些 Revit 图元,且能避免重复创建。要注意:仅仅 Grasshopper 中 Add 运算器支持图元追踪功能。 Grasshopper 文件关闭后再次打开会记住这些图元。

详情如下面的视频示范:

提示: 可以通过鼠标邮件点击运算器来控制图元追踪模式。

RIR 提供三种不同的图元追踪模式:

 

  • Disabled -关闭追踪所有创建的 Revit 图元, 这样可能会造成 Revit 中出现重复创建的图元;
  • Enabled:Replace -每次运行 Grasshopper 都会在 Revit 中建立新的图元替代之前创建过的图元;
  • Enabled:Update -该选项为默认值, Grasshopper 会尽力修改当前 Revit 中的图元(如果 Revit API 允许修改类型),否则运算器将会和 Enabled: Replace 一样建立新的图元。

每个运算器的输出端也可以额外增加控制来管理追踪:

  • Highlight – 选择且会高亮显示由此输出端所建立的 Revit 图元;
  • Unpin – 移除任何经由此输出端创建且被固定的 Revit 图元, 还有一个 Unpin 运算器也具有类似功能;
  • Delete – 删除任何由此输出端追踪的图元;
  • Release – 忘记所有的输出对象且不会追踪这些输出对象,要注意的是如果再次运行 Grasshopper 脚本文件可能会重复建立对象。

| 单位系统

在 Revit 界面数字发生改变时系统会提醒选择一个系统单位,Revit 在后台都是以英尺为单位,如果Rhino 和 Revit 的单位不统一时, Rhino 会提醒修改单位系统,最终保持与 Revit 显示的单位一致。

这时无论您选择哪个选项,几何图像都会转换为两种制式中正确的尺寸。

注意:在 Rhino 中缩放模型会影响到公差(下面即将展开讨论),如果模型被放大,例如毫米改为米都会对公差产生不好的影响。

| 公差

Revit 可以处理经由 Rhino所创建的 BREP(NURBS)与网格几何对象,任何几何物件都有一个很重要的特性 – 几何公差,Revit 在进行几何转换时也会在各方面受到公差的影响, 请注意:

  • 理论上 Rhino 的 Brep可以直接转换为 Revit,但如果公差设置不正确会造成转换失败;
  • 无法直接转换的几何物件会透过 SAT 格式来进行转换,但SAT的转换会很慢,通常需要用到 SAT 转换的运算器都会显示警告,如图所示:
  • 如果无法使用常规或 SAT 方式转换的 DirectShape 图元可以使用带有密集黑色边缘的网格模型输入至 Revit;
  • 族类仅能接受 NURBS 几何物件,所以必须注意公差问题,如果某些几何物件无法转换为族类型会显示一个错误提醒;
  • 远离原点的物件可能无法保证一定的公差精度,隐藏会造成输入 Revit 失败。

理论上一个 Rhino 模型和一个 Revit 模型都可以具有相同精度的公差。

注意:所有线段长度小于1mm的曲线都无法被 Revit 接受,也包括修剪过的曲面边缘,长度包括:

  • 1/256(0.0039)英尺
  • 3/64(0.047)英寸
  • 大概1毫米

所有 NURBS 的公差 Rhino 都会与 Revit 内置公差设置一致,可以通过下拉菜单 工具>选项>单位来进行设置, 以匹配 Revit 的单位类型与公差:

  • 0.1 毫米
  • 0.0001 米
  • 0.006英寸
  • 0.0005 英尺

注意:很多时候无法保证 Rhino 的模型公差总是保持与 Revit 的一致, 例如模型经由其他软件创建而仅仅是在 Rhino 中被打开, 处理方法如下:

  1. 在 Rhino 中执行 Selbadobject 指令以搜索这些损坏的物件,然后修复或替换它。如果想要了解如何修复与替换损坏的物件,请点击这里
  2. 参考前面的方法设置公差,物件的公差也会被重置。

修复带有公差问题的模型过程有一些复杂, 为其重置正确公差的方法如下:

  1. 通过 Explode 指令将多重曲面炸开为多个曲面; 
  2. 选择所有已经炸开的曲面,然后执行 RebuildEdge 指令,再套用默认设置重建曲面边缘;
  3. 执行 Join 指令组合所有被重建边缘的曲面;
  4. 运行 ShowEdge 指令, 检测所有外露边缘,所有超出公差的部分都会以外露边缘进行显示。

| Grasshopper 性能问题

请注意以下事项会影响 Grasshopper 脚本(程序)的性能:

  • Grasshopper 是以插件方式运行在 Revit 的内部, 因此当 Revit 运行比较慢时(例如打开大的模型、开启太多视图…) 会让 Grasshopper 无法获得更多的资源进行计算或预览显示;
  • Revit 中显示 Grasshopper 的内容都需要进行几何转换,预览数据过多时也会降低 Revit 的视图查看速度,你可以通过切换 Revit 的 Rhinoceros 栏内的全局预览开关,选择性地预览所需要显示的 Grasshopper 内容;
  • 在单个图元上运行多个事件会比多个图元上执行单个事件要慢,因此在 Revit 中设计 Grasshopper 脚本时请尽力在执行单个事件时一次性对多个图元进行修改与调整;
  • 关闭 Grasshopper 脚本计算能减少大型 Revit 模型的等待时间,
  • 低质量与超出公差范围的模型会增加转换时间,特别是公差超出的问题会大大降低 Grasshopper 脚本的性能。

Rhino In Revit

| Rhino on Side

在 Revit 中使用 Rhino 时,通常 Rhino 都会被放置在侧边用来查看与预览几何图像。大多数情况下您可能并不需要完整的 Rhino 界面,如果仅需要预览模型, 您只需打开 Rhino 视窗且将其放置在侧边即可。

本章到此结束,下一章会介绍 Rhino.Inside®.Revit 中的图元与实例部分。

~欢迎分享这篇文章给你身边的朋友~

此条目发表在Rhino, Rhino 7, Rhino.Inside®.Revit, Rhino3D中文原厂论坛, v7 新功能, 中文手册, 参数化设计, 建构历史, 建筑分类目录。将固定链接加入收藏夹。