Querying Wall Types

Revit API 中墙体类型由 DB.WallType来表示,墙有三个主要的系统族,经由 DB.WallKind 来进行枚举且由 `DB.WallType.Kind来检查与确定, Rhino.Inside.Revit为了保持一致性,使用了墙体系统族这一术语, Element Type 可以代表一个墙体类型。

可以使用 Category Filter Query Types+ v1.0 来查询 Revit 模型中所有有的墙体类型:

查询墙体

在 Revit 的API 中使用 DB.Wall来表达墙体,Rhino.Inside.Revit 中的 Wall 可以表达所有类型的墙体。

查询所有墙体

联合 Category Filter Query Elements 运算器来查询一个 Revit 模型中所选择的墙体实例:

使用上面的流程 Revit API 也会返回 Stacked Wall 上的各部分墙

墙系统族

建议基于墙系统族的方式来查询基础墙,使用 Wall System Family 运算器来挑选Revit 中内置的基础墙、叠层墙或是幕墙或是组合墙,然后输入至 Query Walls 进行查询,结果如下图所示:

墙体类型

墙体类型的查询非常容易,例如 Data Model: Elements & Instances 中介绍过的流程:

墙体类型分析

读取类型参数

一旦你使用上面的一些工作流程完成了墙体类型的筛选,你就可以查询其参数与修改参数。浏览 Document Model: Parameters 详细的介绍如何修改一个图元类型的参数

分析基础墙

基础墙是 Revit 中一种特殊的墙系统族,由一组定义为墙类型的图层构成,也有一些独特的选项,例如 Wrapping at Inserts . 使用 Analyze Basic Wall Type  运算器可以显示与分析 Revit 文档中基础墙类型信息:

有些特定的输出项(例如 Wrapping at Inserts 与 Wrapping at Ends )会返回一个与Revit API 枚举像对应的整数值, 你可以使用 Wall Wrapping Wall Function (位于上图中参数数值面板前)来确定在参数上设置的值且能给筛选源墙类型, 例如下面示范如何利用这些运算器来进行 Wrapping 与 Function 筛选:

基础墙结构

在 Revit API 中使用 DB.CompoundStructure来表示允许配置类型的结构定义,例如基础墙、地板、屋顶与复合天花板等, DB.CompoundStructure 可以访问 DB.CompoundStructureLayer 的每个独立层。

前面示范了 Analyze Basic Wall Type 运算器如何访问基础墙 类型的复合结构定义 ,也可以使用 Deconstruct Compound Structure 运算器来显示与提取 复合结构定义 ,和上面的比较相似, Opening Wrapping Condition End Cap Condition  运算器可以用来比较与筛选结构图层:

如上面所示,图层从外部 到内部 排序,与 Revit GUI 图层结构匹配,下面示范如何以序号索引来访问每一个图层:

基础墙结构层

使用 Deconstruct Compound Structure Layer 运算器提取每个复合结构层的信息,还可以使用 Layer Function Deck Embedding Type 运算器来进行对比:

叠层墙结构

 当前的 Revit API 并不支持直接访问叠层墙结构数据, 但你可以使用 Analyse Stacked Wall 运算器来提取内置的 基础墙实例,且能解析每一个图层结构:

分析墙体

读取实例参数

如果你使用上面的一些方法筛选到所需的墙体实例,继而可以查询器参数值且可以赋予新的参数值, 浏览 Document Model: Parameters 了解如何编辑一个图元的参数值。

常见墙体属性

如下图所示使用 Analyze Wall 运算器可以获取所有墙系统族的常见属性, Wall System Family Wall Structural Usage 运算器还可以对比参数值:

Slant Angle 属性仅在 Revit 2021 或更高的版本上能支持

下面示范如何使用 Wall Structural Usage 值列表 运算器来筛选 Shear 墙:

输出选项 Orientation 用来显示墙的原始向量

墙定位线

在 Revit API 中使用 DB.WallLocationLine 来枚举一个基础墙或叠层墙的定位线,且其墙体实例中的参数储存在DB.BuiltInParameter.WALL_KEY_REF_PARAM 参数中

基准墙与叠层墙有一个称之为定位线的概念,用来定义墙体实例的垂直参考平面,当墙被翻转或它的结构被修改时会被维持固定在这个垂直参考平面上。运算器 Analyze Wall Location Curve 可以提取墙体的定位线信息,它会返回墙体的中心线、位置线设置、位置线、偏移与偏移方向等信息:

Wall Location Line 运算器也提供基于定位线(Location Line )筛选功能:

如果你仅需要提取墙体的中心线,Grasshopper 中最简单的方法是直接使用 Curve 运算器来筛选即可:

墙体截面

使用 Host Boundary Profile+ v1.0 运算器也可以提取基础墙与叠层墙图元的界面取消, 请注意这些截面曲线会沿着中心平面提取:

墙体几何

你可以通过 Element Geometry 运算器来获取一个墙体实例的基础几何内容:

墙体几何结构

通常在 Revit API 中任何一个图元的几何信息都可以使用DB.Element.Geometry p来提取,对于墙而言,提取的几何信息并不包括墙体结构层, 这里提供一些临时的快速方法。 浏览 different method described here了解提取几何图层信息的更多方法。

Element Parts Geometry 运算器可以用来提取一个基础墙的图层几何信息:

这个运算器也可以作业于叠层墙,它可以提取给定叠层墙的所有基础墙的结构图层信息:

比较推荐的方法是先从叠层墙抽离基础墙,然后再充基础墙中提取其图层几何图形,这个方法所得到的数据结构能更吻合其图层顺序结构:

为了让图层中提取的几何列表于处理图层的其他运算器保持相同顺序,你可以依据墙体方向向量的距离对几何列表进行排序,这个方法最适合平台的墙体, 也可以使用类似的方法对其他墙体几何进行排序(想象下堆叠在不同结构的叠层墙实例中的基本墙体):

 

修改截面

当前版本 Revit API 中并不支持修改墙体截面曲线

创建叠层墙类型

当前版本 Revit API 并不支持创建叠层墙类型

创建墙体

基于基线

使用 Add Wall (Curve) 运算器可以基于给定的曲线创建新的墙体, 下图中 Graphical Element 运算器用来从 Revit 模型中抓取一些直线:

基于截面

使用 Add Wall (Profile)+ v1.0 运算器基于给定的截面线来创建新的墙体,请注意截面线必须是封闭且与工作平面垂直的平面曲线,下图中使用了 Join Curve 运算器来组合拾取到的曲线, Graphical Element 运算器从 Revit 中抓取了一些直线, 这些直线都是与当前工作平面垂直且是处于同一个平面上: