在与 Revit 或 Revit API 打交道时我们时常需要处理 Revit 的类型与自定义族 , 在这个章节将向你展示如何通过不同的 Grasshopper 运算器来查询与创建不同的类型 与 。如果想了解如何在 Revit 中组织图元,请浏览 Revit: Types & Families

查询类型

如果你想统计一个 Revit 族中类型的情况,可以组合一组类别拾取运算器,例如 Built-In Categories + Category Filter + Query Types+ v1.0 等运算器:

还可以给 Query Types+ v1.0 运算器增加更多筛选条件:

查询类型信息

使用 Type Identity 运算器来查询 Revit 类型信息,但要注意族名称参数,对于系统类型自定义族名称下的自定义类型查询会返回系统族名称 :

访问一个类型的族

当查询 一个 Revit 模型中的自定义类型时,我们可以找到包含每种类型逻辑的自定义族定义,使用 Family Types 运算器来获取该组件中的每种类型的系列,

注意 ,如果被查询的族类型没有关联自定义族定义, Family Types 运算器会返回一个 null

选择特定类型

Built-In Categories 可以选择一个特定的模型类别,例如 墙(Walls),

将其连接至 Element Type Picker 运算器,然后从族中选择一个指定的类型:

确定默认类型

当启动构建工具 (例如放置一扇门),Revit 会自动选择上一次使用的指定类别(例如使用放置门工具所选择的门),称之为该类别的默认类型 ,这对于使用 API 来创建图元很有帮助, 使用 Default Type 运算器来查看选定类别的默认类型:

这个运算器在当前这个例子中会返回默认的 DB.FamilySymbol

修改类型

一旦你筛选到需要的类型,你就可以查询其相关参数且可以修改参数。浏览 Document Model: Parameters 了解如何编辑一个图元的参数. 图参数运算器也适用于图元类型。

提取类别几何

一旦你筛选到需要的类型,你就可以使用 Element Geometry 来提取图元的几何图形,运算器 Detail Level 很容易为参数输入正确的 LOD值

Element Geometry 运算器也会自动的在 Rhino 视窗中预览几何图形

按照类别提取几何图形

从族实例内按照类别来提取几何图形是个比较常见的操作,这里分享一个专用的工具 Element Geometry By SubCategory 运算器, 还可以利用它抓取到族内子类别的定义信息,范例如下图所示,

Element Geometry By SubCategory
Place under Grasshopper User Objects folder. Find in Revit > Custom panel

创建新的类型

你也可以基于现有的类型来建立新的类型,例如利用 Duplicate Type+ v1.0 运算器复制一个现有的类型,然后赋予新的名字,调整相关属性值,

Revit 项目浏览器会在族下面显示新的类型

移除类型

如果需要移除类型请使用 Delete Element 运算器, 请注意被删除的类型也会连同其相关实例一起被删除,如果你不希望实例也被删除,请在删除之前找到这些实例,然后修改为其他类型

导入族

你可以使用 Load Component Family+ v1.0 运算器导入一个新的族文件至模型

Revit 浏览器现在会在族下面列出新的族*

保存族

使用 Save Component Family+ v1.0 运算器将一个族保存至外部文件

新建族

在当前的 Rhino.Inside.Revit 中,可以使用 New Component Family 运算器建立新的 Revit 族或是将新的几何物件加入至某个选定的族中,请注意,运算器需要赋予正确的模板文件,

Revit 浏览器现在会在族下面列出新的族

你也可以继续给 New Component Family 运算器接入 Generic Model 模板,且使用 Built-In Categories 运算器手动设置类别

可以利用位于 Revit > Family 面板下的一些运算器来帮助我们建立用于Revit 族的几何

  • Component Family Form
  • Component Family Void
  • Component Family Curve
  • Component Family Opening

上面这些运算器可以设置构成新的族的图元的可见性、子类别与材质。更多介绍请浏览 Rhino Objects as Loadable Families guide.

Creating subcategory

如上面的范例,你可以使用 Construct Visibility 运算器来控制待创建几何的可见性,这个运算器提供了所有原生控制Revit族几何物件可见性/图形编辑的选项

编辑族

你也可以使用 New Component Family  运算器类编辑当前的族,只需要接入合适的模板与族名称、新的几何,而且 New Component Family 运算器会自动找到当前的族,然后代替相关内容且重新导入族只 Revit 模型中,请注意,OverrideFamily 需要设置为TrueOverrideParameters 设置为根据需要覆盖族参数

建立新的族模板

Revit 附带一系列 Revit 族模板 (.RFT) 文件。这些包含为特定类别创建可载入族所需的基本默认参数。有趣的是,许多最受欢迎的类别都没有为它们构建的模板。这些类别的示例包括墙壁、屋顶、地板、窗户、HardScape 等。按照以下步骤,可以在这些常用的类别中创建族模板并创建可载入族。 这个电子表格 中列出了支持客户 RFT 文件的默认模板和类别列表。

综上所述,创建一个新的族模板步骤如下:

  1. 利用所需的类别创建一个就地运算器,例如楼梯,
  2. 绘制一个对象,
  3. 群组这些对象,
  4. 右键点击 Group 且 Save Group,
  5. 保存文件为 RFA,
  6. 开启 FRA 文件且删除里面的所有物件,
  7. 保存文件,
  8. 在文件浏览器中重新命名这个 RFA 文件为 RFT 文件,
  9. 在新的运算器族中使用这个 RFT 文件来建立一个新的族。