DesignSeries00020.pngIFC 数据映射示例

框架元件对象的 IFC 实体条件

公式:

IF(([Object.structuralUse*] = 'Joist') | ([Object.structuralUse*] = 'Beam'), 'IfcBeam', 'IfcMember')

结果:

如果框架元件对象的 Structural Use 设置为 Joist 或 Beam,IFC 实体将为IfcBeam,否则将为IfcMember。

IFC_condition_ex1.png 

楼板对象的特性集条件

FIND('Structural', [Style.Name]) = 0

结果:

如果楼板对象的样式名称以 “Structural” 开头,则分类特性集将附加到楼板上。

IFC_condition_ex2.png 

强制和默认值示例

文件交换场景经常包括需求和策略,指定某些数据字段不能为空,或者每个数据字段都需要具有默认值。只有几个特定对象具有不同的值,将通过手动覆盖。为确保强制数据字段总包含值,只需在数据映射公式的末尾包含一个常量即可。

[Style.Function] ELSE ‘NOTDEFINED’

[Object.VW_Name] ELSE [Style.Name] ELSE ‘Roof’

要处理大多数对象具有默认值,但某些特定对象具有不同值的情况,最好创建一个记录格式,并包含一个默认记录字段值,该值将成为数据源的默认值。然后,将该记录仅附加到具有特定不同值的对象,并根据需要更改附加记录中的值。没有附加记录的对象将获得默认值,附加了记录的对象将获得特定值。

[Record.Pricing Details.Discount];

结合字段和常量的示例

数据映射公式的结果通常需要“增强”以改善易读性,添加前缀/后缀以满足特定要求,或者要从多个源组合或计算。

在本例中,我们需要对自动扶梯进行更好地描述,包括关于制造商和台阶宽度的重要信息。我们还想添加一些词语以增加可读性。

oip_EscalatorEx..png 

公式:

'自动扶梯: ' + [Object.Type] + ' 宽度: ' + [Object.Step width]

结果:

自动扶梯:Otis 510 M 宽度: 1000 (3' 3")

在另一个例子中,我们需要设置来自 Vectorworks 名称的窗对象的名称。如果没有 Vectorworks 名称,我们希望组合 ID 前缀、ID 标签和 ID 后缀字段。如果所有这些参数都为空,则应使用“窗”一词来标识窗。

oip_Window_ex.png 

公式:

[Object.VW_Name] ELSE [Object.IDPrefix] + [Object.IDLabel] + [Object.IDSuffix] ELSE 'Window'

没有 Vectorworks 名称的结果:

W-01A1

使用条件和函数的示例

在本例中,我们希望根据窗对象的设置来计算 IfcWindow.OverallHeight

oip_window_ex2.png 

Window_ex3.png 

高度参数包含正确的值,只要窗没有窗台;或者如果具有窗台,就是砖窗台类型。在任何其他情况下,需要将窗台高度(3)值添加到窗高度

公式:

[Object.OverallHeight] + IF([Object.IncludeSill] & ([Object.SillStyle] != 'Brick'),[Object.SillHeight], 0)

结果,当没有窗台,或者窗台类型为砖(将高度值增加 0):

2000.0

结果,当有一个窗台,且不是砖(将高度值增加 150.0):

2150.0

使用选择器映射数据源的示例

IFC 的数据需要许多“枚举”类型的数据字段。典型的例子包括:PredefinedType, OperationType, ShapeType, and so on.有时,没有一一对应的关系,当前设置与 IFC 不同,不能直接映射有效的数据源或者以其他语言编写的值。

在本例中,我们将窗中的 Sash Operation 列表映射到 IFC Window Panel 数据集所需的 OperationType

IFC00021.png 

对于映射,我们将使用其中一个选择器函数,它将窗 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 添加固定值(真)。

symbol_ex1.png 

symbol_ex.png 

当我们选择 IFC 数据命令并选择 IfcColumn 时,就可以看到我们的新映射是如何工作的:

oip_symbol_1.png 

对于符号,除了使用 IFC 命名的映射,还可以使用符号名称来指定数据映射。我们可以添加符号名称,然后定义 IFC 命名(通过单击更改映射)和我们希望导出的特性集(通过单击添加)。例如,我们添加Pset_ManufacturerTypeInformation,然后将所有字段映射到固定值,因为它们对于此符号的所有实例都相同。

symbol_3.png 

symbol_4.png 

现在,即使没有将 IFC 数据附加到符号定义或任何符号实例,也会将该符号导出为具有Pset_ManufacturerTypeInformation的IfcFurnishingElement。在验证了建议的IfcFurnishingElement之后,我们可以通过打开“IFC 数据”对话框并单击确定来看到默认映射和要导出的数据。

oip_symbol_5.png 

 

~~~~~~~~~~~~~~~~~~~~~~~~~

IFC 数据映射表达式

创建或编辑映射公式

映射IFC数据

 

这个页面有帮助吗?