文件交换场景经常包括需求和策略,指定某些数据字段不能为空,或者每个数据字段都需要具有默认值。只有几个特定对象具有不同的值,将通过手动覆盖。为确保强制数据字段总包含值,只需在数据映射公式的末尾包含一个常量即可。
[Style.Function] ELSE ‘NOTDEFINED’
[Object.VW_Name] ELSE [Style.Name] ELSE ‘Roof’
要处理大多数对象具有默认值,但某些特定对象具有不同值的情况,最好创建一个记录格式,并包含一个默认记录字段值,该值将成为数据源的默认值。然后,将该记录仅附加到具有特定不同值的对象,并根据需要更改附加记录中的值。没有附加记录的对象将获得默认值,附加了记录的对象将获得特定值。
[Record.Pricing Details.Discount];
数据映射公式的结果通常需要“增强”以改善易读性,添加前缀/后缀以满足特定要求,或者要从多个源组合或计算。
在本例中,我们需要对自动扶梯进行更好地描述,包括关于制造商和台阶宽度的重要信息。我们还想添加一些词语以增加可读性。
'自动扶梯: ' + [Object.Type] + ' 宽度: ' + [Object.Step width]
自动扶梯:Otis 510 M 宽度: 1000 (3' 3")
在另一个例子中,我们需要设置来自 Vectorworks 名称的窗对象的名称。如果没有 Vectorworks 名称,我们希望组合 ID 前缀、ID 标签和 ID 后缀字段。如果所有这些参数都为空,则应使用“窗”一词来标识窗。
[Object.VW_Name] ELSE [Object.IDPrefix] + [Object.IDLabel] + [Object.IDSuffix] ELSE 'Window'
W-01A1
在本例中,我们希望根据窗对象的设置来计算 IfcWindow.OverallHeight。
高度参数包含正确的值,只要窗没有窗台;或者如果具有窗台,就是砖窗台类型。在任何其他情况下,需要将窗台高度(3)值添加到窗高度。
[Object.OverallHeight] + IF([Object.IncludeSill] & ([Object.SillStyle] != 'Brick'),[Object.SillHeight], 0)
2000.0
2150.0
IFC 的数据需要许多“枚举”类型的数据字段。典型的例子包括:PredefinedType, OperationType, ShapeType, and so on.有时,没有一一对应的关系,当前设置与 IFC 不同,不能直接映射有效的数据源或者以其他语言编写的值。
在本例中,我们将窗中的 Sash Operation 列表映射到 IFC Window Panel 数据集所需的 OperationType。
对于映射,我们将使用其中一个选择器函数,它将窗 Sash Operation 列表条目映射到一对 IFC Window Panel 参数(逻辑和值):
SELECT2([Object.SashOperation] = 'Opening', 'FIXEDCASEMENT',
[Object.SashOperation] = 'Cased Opening', 'FIXEDCASEMENT',
[Object.SashOperation] = 'Fixed Glass', 'FIXEDCASEMENT',
[Object.SashOperation] = 'Fixed Glass - No Sash', 'FIXEDCASEMENT',
[Object.SashOperation] = 'Single Hung', 'SLIDINGVERTICAL',
[Object.SashOperation] = 'Double Hung', 'SLIDINGVERTICAL',
[Object.SashOperation] = 'Casement', 'SIDEHUNGLEFTHAND',
[Object.SashOperation] = 'Bi-parting Casement', 'SIDEHUNGLEFTHAND',
[Object.SashOperation] = 'Horizontal Slider', 'SLIDINGHORIZONTAL',
[Object.SashOperation] = 'Awning', 'TOPHUNG',
[Object.SashOperation] = 'Hopper', 'BOTTOMHUNG',
[Object.SashOperation] = 'Tilt/Turn', 'TILTANDTURNLEFTHAND',
[Object.SashOperation] = 'Vertical Pivot', 'PIVOTVERTICAL')
ELSE 'NOTDEFINED'
符号和自定义几何图形必须附加 IFC 数据才能导出。它们的 IFC 数据映射基于其指定的 IFC 实体类型的设置。
在“IFC 数据映射”对话框中,我们添加 Pset_ColumnCommon 并将“引用”字段映射到对象的类名称。我们也可以为 IsExternal 和 LoadBearing 添加固定值(真)。当我们选择 IFC 数据命令并选择 IfcColumn 时,就可以看到我们的新映射是如何工作的:
对于符号,除了使用 IFC 命名的映射,还可以使用符号名称来指定数据映射。我们可以添加符号名称,然后定义 IFC 命名(通过单击更改映射)和我们希望导出的属性集(通过单击添加)。例如,我们添加 Pset_ManufacturerTypeInformation,然后将所有字段映射到固定值,因为它们对于此符号的所有实例都相同。
现在,即使没有将 IFC 数据附加到符号定义或任何符号实例,也会将该符号导出为具有 Pset_ManufacturerTypeInformation 的 IfcFurnishingElement。在验证了建议的 IfcFurnishingElement 之后,我们可以通过打开“IFC 数据”对话框并单击确定来看到默认映射和要导出的数据。
~~~~~~~~~~~~~~~~~~~~~~~~~