属性集是属性的集合,属性集的分类如下:
静态属性集以 IFC 实体的方式定义,其属性以IFC schema 的方式静态的定义在属 性 集 中 , 如 IfcDoorLiningProperties 、 IfcDoorPanelProperties 、IfcSoundProperties。
动态属性集以 IfcPropertySet 实体表示。IfcPropertySet是一个装载属性的容器,具体的属性则由 IfcProperty 表示。动态属性集分为预定义属性集和自定义属性集。IFC 规范中定义的动态属性集为预定义属性集,而用户根据自身需求定义的动态属性集为自定义属性集。
属性是构成属性集的基本单位,可以分为简单属性和复杂属性两类。
IfcProperty是抽象类型,定义了可以通过属性集机制与IFC对象关联的所有属性的抽象。
IfcComplexProperty定义由多种不同类型的属性构成的复杂属性,它可以包含另一个IfcComplexProperty属性,因此是嵌套的。
IfcSimpleProperty是简单属性对象,根据所描述对象的特征分为如下类型:
类型 | 适用范围 |
---|---|
IfcPropertySingleValue | 定义单值属性 |
IfcPropertyEnumeratedValue | 定义枚举型的属性 |
IfcPropertyBoundedValue | 定义具有上下边界区间的属性 |
IfcPropertyTableValue | 定义一个以表格结构存储数据的属性,该表格由两列相互对应的数据组成 |
IfcPropertyReferenceValue | 定义将实体引用作为属性值的属性 |
IfcPropertyListValue | 定义具有多个值的列表类型的属性 |
静态属性集将属性集中的属性以实体属性的方式定义,特定的静态属性集只能应用于特定的实体。
静态属性集 | 适用的实体类型 |
---|---|
IfcDoorLining Properties | IfcDoorStyle |
IfcWindowPanelProperties | IfcWindowStyle |
IfcElementQuantity | 多个类型,例如 IfcBuilding、IfcSpace、IfcBeam 等 |
IfcSpaceThermalLoadProperties | IfcSpace |
IFC规范针对不同领域预先定义的属性集,以Pset_作为名称前缀。
属性集通过两张表格进行定义,包括属性集的名称、适用的实体类型、属性集说明以及属性的具体定义。
Pset_CoveringFlooring 属性集的定义如下:
属性集名称 | 适用的实体 | 适用的类型值 | 定义 |
---|---|---|---|
Pset_CoveringFlooring | IfcCovering | Flooring | 用于描述 IfcCovering 实体实例的通用属性,适用于PredefinedType 为 FLOORING值的情况。 |
Pset_CoveringFlooring 属性定义如下:
名称 | 属性类型 | 数据类型 | 定义 |
---|---|---|---|
HasNonSkidSurface | IfcPropertySingleValue | IfcBoolean 默认值:FALSE |
表明表面是否抗滑 |
HasAntiStaticSurface | IfcPropertySingleValue | IfcBoolean 默认值:FALSE |
表明表面是否抗静电 |
自定义属性集,用户对属性集的名称、适用范围以及属性的定义及涵义进行约定,从而满足信息交换与共享的需求。自定义属性集可以参考预定义属性集的格式描述。
下面对IFC文件中属性及属性集的描述进行分析,文件内容如下:
#172= IFCCOLUMN('1Gqp62BzHBLvjB0FoH647s',#41,'M_\X2\77E95F6267F1\X0\:475 x 610mm:203090',$,'475 x 610mm',#170,#163,'203090');
#181= IFCQUANTITYVOLUME('GrossVolume',$,$,0.869249999999998);
#182= IFCELEMENTQUANTITY('0f1sXTQiT2DfQM33wiTKTy',#41,'BaseQuantities',$,$,(#181));
#187= IFCRELDEFINESBYPROPERTIES('3R85DKTDrA7v4wJDVt45kl',#41,$,$,(#172),#182);
#191= IFCPROPERTYSINGLEVALUE('Reference',$,IFCIDENTIFIER('M_\X2\77E95F6267F1\X0\:475 x 610mm'),$);
#192= IFCPROPERTYSINGLEVALUE('LoadBearing',$,IFCBOOLEAN(.F.),$);
#193= IFCPROPERTYSINGLEVALUE('IsExternal',$,IFCBOOLEAN(.F.),$);
#194= IFCPROPERTYSET('3k2zVw6eD9AflMK8DfVVXl',#41,'Pset_ColumnCommon',$,(#191,#192,#193));
#196= IFCRELDEFINESBYPROPERTIES('2kFLGDqi98reRe3Bpb7Cdg',#41,$,$,(#172),#194);
#172是实体定义,表示一个柱子。
#196将实体柱子(#172)与属性集(#194)关联起来了。
#194是是属性集,里面包含了三个属性定义(#191,#192,#193),
#191,#192,#193都是是简单的单值属性,即IfcPropertySingleValue。
#191定义了‘Reference',值类型是IFCIDENTIFIER,值为'M_\X2\77E95F6267F1\X0\:475 x 610mm'。
#192定义了'oadBearing',值类型是IFCBOOLEAN,值为False。
#193定义了'IsExternal',值类型是IFCBOOLEAN,值为False。