在添加自定义记录和数据到绘图时,要将他们自动附加到 Vectorworks 插件对象,使用所需的数据字段创建记录格式,然后将字段映射到该对象的适当常量值、参数或样式。这样,可以更容易地使用报告对象数据(例如工作表、数据标记和数据可视化)的各种 Vectorworks 功能。
在本例中,“柜子计算”记录格式已创建,并将其添加为“底柜”插件对象的数据集。
● 工作台面长度:映射到柜子的长度参数(工作台面的线性测量)
● 工作台面面积:我们在工作台面上添加 50 毫米的悬垂并计算面积,然后除以 1000*1000 以将结果从平方毫米转换为平方米(长度/深度单位为毫米)
公式: ([Object.Length] * ([Object.Depth] + 50)) / 1000000
● 邻墙:未映射;在“对象信息”面板的“数据”选项卡中,用户定义橱柜是否与墙相邻,从而确定是否需要后挡板
● 后挡板面积如果需要后挡板,面积为 0.6 米(后挡板面板宽度) * 工作台面长度/1000(将米换算为毫米)。注意,此公式涉及到同一记录中的其他两个字段。
公式: IF([Record.Cabinet Calculations.Adjacent to Wall], 0.6 * [Record.Cabinet Calculations.Countertop Length] / 1000, 0)
如果从映射中删除记录格式,则记录将从绘图中的所有底柜实例中分离。
当将底柜放置在绘图中时,“对象信息”面板的“数据”选项卡将显示已自动附加的记录数据。对于每个映射的字段,按映射列控制如何编辑该字段。
IF(([Object.structuralUse*] = 'Joist') | ([Object.structuralUse*] = 'Beam'), 'IfcBeam', 'IfcMember')
如果框架元件对象的 Structural Use 设置为 Joist 或 Beam,IFC 实体将为IfcBeam,否则将为IfcMember。
FIND('Structural', [Style.Name]) = 0
如果楼板对象的样式名称以 “Structural” 开头,则分类特性集将附加到楼板上。
文件交换场景经常包括需求和策略,指定某些数据字段不能为空,或者每个数据字段都需要具有默认值。只有几个特定对象具有不同的值,将通过手动覆盖。为确保强制数据字段总包含值,只需在数据映射公式的末尾包含一个常量即可。
[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。
高度参数包含正确的值,只要窗没有窗台;或者如果具有窗台,就是砖窗台类型。在任何其他情况下,需要将窗台高度(4)值添加到窗高度。
[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 实体类型的设置。
在“数据管理器”对话框中,我们添加 Pset_ColumnCommon 并将“参照”字段映射到对象的类名称。我们也可以为 IsExternal 和 LoadBearing 添加固定值(真)。
当我们选择 IFC 数据命令并选择 IfcColumn 时,就可以看到我们的新映射是如何工作的:
对于符号,除了对它们的 IFC 指定使用映射外,还可以使用符号定义的名称来指定数据映射。在“数据管理器”,我们可以选择符号定义,然后单击添加数据集以定义我们想导出的所需的 IFC 数据集。例如,我们添加Pset_ManufacturerTypeInformation,然后将所有字段映射到固定值,因为它们对于此符号的所有实例都相同。
现在,甚至不需要将 IFC 数据附加到符号定义或任何符号实例上,该符号就被导出为带有Pset_ManufacturerTypeInformation的IfcFurnishingElement。通过打开“IFC 数据”对话框并在验证建议的IfcFurnishingElement后单击确定,来查看默认映射和将导出的数据。
~~~~~~~~~~~~~~~~~~~~~~~~~