此典型操作用于将建筑设计解构为几何组件。 在 CGA 形状语法中,组件分割可用于将形状分为较小尺寸的形状。

以下操作将根据其几何将其前导形状分割为多个组件,并对每个组件运行一组操作。

comp(component){selector : operations | selector : operations …}

参数 component 用于标识要分割的组件的类型。例如,可以将其设置为 f(适用于面)、e(适用于边)或 v(适用于折点)。 selector 参数用于定义所选组件。

作为基础示例,以下规则将为形状 A 的几何的 all 面创建一个形状 B:

 A --> comp(f) { all : B }

 

同样,使用以下两条规则分别分割为边和折点:

comp(e) { all : B }

 

comp(v) { all : B }

 

选择器

要仅访问所选组件,请使用如下操作调用来创建由原始形状的第三个面组成的形状:

comp(f) { 3 : B }

此类调用不是很通用,并且要求用户注意前导形状的几何拓扑。 因此,可以使用选择器作为备选方案: 

  Building --> comp(f) { side : Facade }

 

此 CGA 语法仅选择 Building 几何的垂直 side 面,并相应地创建新的立面形状。 为此,规则解释器将分析几何组件的方向(相对于范围方向的面法线方向)。

示例

Building --> extrude(10)

建筑物覆盖区随即拉伸为 3D 质量模型。 生成的范围将以黄色显示。 将分别以红色、绿色和蓝色表示范围的 x 轴、y 轴和 z 轴。 枢轴将以相同的颜色显示。

GUID-9A9B94A1-ECE0-4DBA-B5A9-27589890D29D-web
Building --> extrude(10)
 comp(f) { front : color("#FFFF00") Main. |
           side  : color("#00FFFF") Side. }

体量模型将分割为一个 Main 立面 (front) 和多个 Side 立面 (side)。 现在,每个面都是新形状(Main 和 Side 形状)的几何。 新形状的范围和枢轴取决于面的方向。 x 轴将指向第一条边,z 轴将指向面法线。 范围的 z 维度为零。

GUID-F6D682E6-6AC3-457F-B623-4558021DE1D1-web
 

通常,会进一步将立面细分为楼层。 将放置并定位每个新 Main 和 Side 形状的枢轴和范围,由此可以方便地写入立面规则。

有关详细信息,请参阅 CGA 组件分割操作