第十二届全国工程建设计算机应用学术会议论文集
北京.2004
IFC文件的一般结构和EXPRESS语言介绍
鼋畚鼬刁
渡1王利锋2
(1 北京航空航天大学土木工程系
2中国石油工程建设(集团)公司)
【摘要】Ⅱ℃是由IAI发行的~个建筑模型数据交换的国际标准。它是AEC(Amllit。ctIⅡe,
E嚼r瑚她and c0删n幽)的实体(如墙、窗户)库。IFC是用s唧的EXPRESS语言写的,采用面
向对象的方法,把数据组织成为有等级关系的类。基于Ⅱ℃建立的模型允许AEC工程师们共享,一
旦卟工程师建立了模型,其他的工程师就不需要重新建模,这就提高了以后的工作(如估算、建
筑物的服务设施的设计与管理等)效率。本文主要阐述IFC文件的—般结构和EXPRESS语言。
【关键词】IFC文件;sI口;D蚋砸ss;类;头段;数据段
1引言
为了适应计算机辅助技术(如CAD、EAPP、CAM、CAE等)国际标准化的趋势,为了
在各应用子系统之间进行有效的信息传递和产品数据交换,实现产品开发,产品数字化建
模和基于STEP(ISO 10303)的产品信息集成是Ⅱ℃(Industry FhIIIdati∞clas8∞)的关键技
术。STEP(Standard for the Exchange of Product model data)是一套关于产品壤个生命周期内
数据的表达与交换的国际标准,它提供了一种不依赖于具体系统的中性机制,支持产品信
息在不同的计算机应用系统之间集成与交换的完整性和一致性。它不仅适合于中性文件交
换,而且是实现产品数据库共享及产品数据长期存档的基础。STEP使用了形式化的数据
规范语言EXPRESS来描述产品数据,IFC把EXPRESS语言(STEP中的PARTll)中确定的
概念模型用于产品数据纯正文编码交换文件结构的语法,这一文件语法适合于在计算机系
统之间进行产品数据的传输,任意EXPRF强S语法都能映射到交换文件结构的语法中去。
2
IFC文件的ExPRESS定义语言
EXPP@_SS是一种概念模式语言,它用来描述一定领域的类,与这些类有关的信息或属
性(如颜色、尺寸、形状等)和这些类的约束(如惟一性)。它也用来定义类之间的关系
和加在这些关系上的约束。
2.1
E】四REss格式
EXPRESS用“;”结束每条语句,每条语句之问可以不空格和换行,但有空格和换行
可以提高人的可读性。
·450·
IFC文件的一般结构和D(PREsS语言介绍
2.2类
用EXPRESS定义类。在类的定义中,所有表示它特征的属性和行为关系都要声明。
类的声明用关键词ENTITY开始和END-ENTITY结束。
属性是类的特性(数据和行为关系),需要它来支持对类的理解和使用。属性可以用
简单的数据类型(如实数、整数、字符串)来表达或者用其他的类,每种属性都和类有关
系。用简单数据类型表达的属性可以用EXPRESS数据类型表达出来。
ENTITY IfcOwnerID;
Identifier:IfcString;
OwningApp:IfcString;
OwnJngUser:IfcActor;
END EN删;
2.3简单数据类型
在EXPESS语言中,简单数据类型是最小数据单元的域。简单数据类型分为实数型、
整数型、数型、逻辑型、布尔型、二进制型和字符串。
2.4聚合数据类型(AIX沫D蛆10IN)
聚合数据类型以给定的基本数据类型引例集合作为它的域,这些基本数据类型引例称
为聚合引例的元素。EXPRESS语言提供四种聚合数据类型:数组型、袋型、数表型和集合
型。在IFC规范里,LIST和SET是应用最广的聚合数据类型。
2.5属性
属性表示实体的基本特点性能和性质,属性说明建立实体数据类型的由属性表示的数据类
型间的关系。可以用关系的名字和与其有关系的类(关系的方向)来表示。有三种属性:
显式属性为生成引例而具有其值的属性。除非显示属性被说明为“任选”
(oerIONAL)#b,该实体数据类型每个引例都应具有哪个属性的值。
派生属性(Derived)用某种方式计算其值的属性。通过对表达式求值得到的性质,派
生属性说明在关键字“DERIVE”后给出,由属性标识符、它的表示类型和用于计算属性
值的表达式组成。
反向属性(Inverse)其值是按特定作用使用该实体的引例所组成的属性。如果另一个
实体已通过显式属性方式与当前实体建立了关系则在当前实体范围内可使用反向属性来描
述这种关系,这种反向属性也可用来对该关系作进一步的限制。反向属性说明在关键字
“INVERSE”后给出,每个反向属性单个地规定。
2.6惟一规则
EXPRESS容许对属性的惟一性使用“unique rule”来定义。规定声明为“UNIQUE”的
属性的值只与该类(实体)的一个实例相关。如果多个属性声明为“unique”,在UNIQUE
声明中必须包括每个属性。
·451·
第十二届全国工程建设计算机应用学术会议论文集
北京·2004
2.7领域规则(Domain Rule)
领域规则是用于给出属性可能有的值的约束,用关键字“唧RE”来定义。在下面
例子中,如果三个表中具有相同成员个数的话,那么实体存在。这用来确保这些表实际上
相当,即对于每个厚度也给出偏心和材料。
ENTITY ffcmatefialLayerSet;
setName:0PrⅡ0NAL Str崦;
伽‰ts:UST[1:?]0FⅡclengtI埘easⅢe;
njckflesses:LIST【1:?J OF尬1en础Me鹅ure;
MatefiMs:LIST[1:?J OF If:cmamfiM;
WHERE
wRl:(Ⅲ岫Ⅸ(SELF.衄醅ts)=唧D肽(sELF.嘶ckrl麟燃))AND
(Ⅲ啪E)((sELF.111ickn∞∞)=HIINDEx(SEW.Matefial8));
END—EN7IT】rY;
在EXPRESS中使用的算术语句可以为与领域规则相关的属性值提供约束。譬如,如果
一个窗的周长限制在小于或等于4m,规则为:
ENITrY Window;
WINDOw—LENGTH:REAL;
WINDOW耶IGHr:REAL;
硎HERE岫eter:(WINDOW—LENGTH*2+W矾DOW-眦IGHT*2)<=4.O;
END—ENTITY;
2.8超类型和子类型
EXPRESS允许将实体分类为其他实体的子类型。这样在实体间建立了—个层次关系(即子
类型/超类型),并在这个层次关系中,由子类型继承它的超类型特性(即属性和限制)。连续的
子类型/超类型关系建立—个层次图,在这个图中,子类型的每个引例是它的超类型的—个引
例。
2.9构造数据类型
在ⅨP衄ss语言中,构造数据类型有:枚举数据类型和选择数据类型。枚举类型以
名字的有序集合作为它的域,该名字表示枚举类型的值。例如,一个空间类型是从枚举表
(已建、在建、出售)中选择出来的,数据类型的枚举声明如下:
咖Ifcspa耐ry衄l哪=ENI,蜘酿A皿()N OF
END一唧;
(Occupied,‰h血cal,CiIculatj∞);
选择数据类型定义了一个数据类型表,叫做“选择表”,可能是实体数据类型表、字
符串表、实数表。象枚举型一样,只能从选择表中选一个实例。
·452·
IFC文件的一般结构和EXPRESS语言介绍
TYPE IfcBuildingSelect=SELECT
(IfcBuilding,IfcBuildingStorey);
END一唧;
2.10使用其他模式(Sdlallta)
通过EXPRESS接口,用其他模式来定义类。允许模式被分成易于操作的部分和再利
用先前定义的或其他地方定义的模式。
RⅡ砸悄aE规格允许引用其他模式(通常是类)所做的声明,但不能成为当前模式的—部分。
3
IFC的物理文件
为了数据交换的目的,STEP标准Part 21规定了正文文件的结构,认为一个STEP文件
或一个Part 21文件包括两段:头段和数据段。/FC文件同STEP文件一样,也包括两段:
头段和数据段,如例1。
例1:一个IFC文件工作例子。
ISO一10303—21;
HEADER;
FILE—DESCRIFFION((’IFC 1.5 Exchange File’),’2;1’);
FILE—NAME(7ADT.dwg’,’2003—07—17T15:19:37’,(’Anyone’),(’Autodesk’),’0.9~IFC
Step Toolbox Version 1.5.1 Addendum 1(24.August 1998)’,’Aut0CAD’,’Aut0C,AD’);
nLE SCHEMA_((’IFCl51’));
ENDSEC;
DATA;
#1=IFCAUDITI'RML(1058426377,$,0,$,0,$,0,());
#2=IFCOWNERHISTORY(0,0,’AeclfcUtility’,’UNSPECIFIED’,#1);
#12=IFCCARTESMNPOINT((0.…0 0.));
#37=IFCCARTESIANPOD,'T((0.…0
0.));
#26=IFcsrI'E(’%Oi=uxM;mB5cG>%joZ3h’,#25,(),(),(),#23,$,$,$,.
BUILDINGSITE.,(O,0,0),(0,0,0),0.,s,$);
#46=IFCDIMENSl0N^I积H)NENrS(1,0,0,O,O,O,0);
#10=Ⅱ℃SnINrr(*,.Ⅱ粥e耵{UNrr…M【Ⅲ…M嘞.):
栉笠=Ⅲ凹R(ⅡECⅡ’%Oi=sxM:mBS(七>%joz3h’,#2,(),0,0,#11,#6,#3,s,#15,#21);
#11=IFCIfNrrASSIcm皿n1.IT((#49));
#48=IFCMEASUREWTrHUNlT(ⅡⅡ认Ⅱ0MEAsuRE(0.02539998628400741),#47);
#47=IFCSⅡTNrr(*,.LENGTHUNlT.,$,.METRE.);
#49=IFcc0TqVERsl0NBAsEDUNlT(#46,.LENG哪7Nrr.,’Inches7,#48);
ENDSEC:
·453·
第十二届全国工程建设计算机应用学术会议论文集
北京·2004
END—Is0—10303—21:
3.1头段
头段给出关于文件的种类和作者的信息。在每一个IFC交换文件中头段必须出现。该
段以关键字“HEADER”开始,并且以“ENDSEC”结束。
在每一个交换文件结构中要规定头段实体,并且每一个实体要求有一个实例出现。头
段实体有文件描述(file—description)、文件名(file—nafflle)、文件模式(file—schema),并
且应该按这--jJ哽序出现。例2描述一个IFC文件标题的模式。
例2:一个IFC文件头段的E四REss描述。
SCHEMA header—section-schema;
TYPE SCHEMA NAME=STRING(256);
END—TYPE;
ENTITY file—description;
description:LIST[1:?]OF STRING(256);
implementation—level:STRING(256);
END—EⅣITrY;
EN吖Ⅳfile—narhe;
nalne:STRING(256);
time
stamp:STRING(256);
author:uST[1:?]OF STRING(256);
organisation:HST[1:?J OF STRING(256);
pmpmcessor—version:STBING(256);
or/ginating—system:STRING(256);
authorisation:STRING(256);
END—EⅣrrIY;
ENTITY file
schema;
schema
identifiers:LISTll:?j 0F SCHEMA NAME;
END—EⅣrrrY;
END—SCHEMA;
3.2数据段
数据段包括要被交换结构传送的产品数据。每一个Ⅱ1c文件都应该有数据段。该段以
关键字“DATE”开始,并且以“ENDSEC”结束。
实体实例表示成下列形式(由例3给出):
#
=();
例3:以IFC文件格式表示的实体的实例。
EXPRSS实体定义:
·454·
IFC文件的一般结构和EXPRESS语言介绍
ENTrllY IFC圳E
肼唧巧℃凸蠕田1SI^p 7p0珊T
SUNBTYPE OF(IFCCURVE);
sI珊rⅥ砸OF(IFCP()Ⅱ盯);
COORDINATES:LIST[1:3]OF IFCLENGTHMEASURE:
WHEI也
DERn喂D珊:1FCI)唧Ⅷ删sIoNc0UNT:=HINDEX(COORDINATES);
WRl:皿帅D((C00RD矾A7IES)>=2;
EN唧Ⅲc、匿C1[DR
END ENTrrY;
SUBTYPE OF(IFCG】ⅪM咖CREPRF玛ENTATIONITEM);
o腼N.r枷0N:Ⅱ℃DmECnON;
MAGNITUDE:IFCLENGTHMEASURE;
DERIvE
DIM:IFCDD忸№皿NSIONCOUNT'_0删A.110N.D瑚:
WHERE
WRl:MAGNITUDE>=0.0:
END ENTITY;
实体实例在数据段中的示例;
#32=IfCLINE(#29,#31);
#29=IfCCARTESIANPOINT((0.,0.));
#31=IfCVECTOR(#30,10.);
带30=LfCDIRECTION((1.,0.));
4结论
IFC作为一种即将在建筑行业中广泛应用的标准,已引起全世界的普遍重视。IFC是
一种非私有的产品,全世界的AEC软件开发商们都可使用,这就加强了AEC软件应用的
协同工作能力,这意味着在AEC领域里,用户可以共享IFC模型的数据。对于AEC公司、
业主和支持IFC的软件的开发商们来说,协同工作将成为现实。
参考文献
1
IS010303.工业自动化系统与集成一产品数据表达与交换
2'Die脚目Definition岫脚for IFC Develolx,nent,hnp:∥ww.eorertet.gov.刚P standardMiar/5巧℃一
Resourse htm
3张和明,孙喜杰,张玉云.产品数据集成.中国计算机报
·455·
IFC文件的一般结构和EXPRESS语言介绍
作者:
唐春凤, 刁波, 王利锋
唐春凤,刁波(北京航空航天大学土木工程系), 王利锋(中国石油工程建设(集团)公司)
作者单位:
本文读者也读过(10条)
1. 代一帆.董靓 建筑数据表示和交换标准IFC综述[会议论文]-2007
2. 张剑涛.刁波.唐春凤.张汉义 IFC模型中建筑信息的描述与获取方法[会议论文]-2005
3. 葛松培.孙红三 IFC实现方法综述[会议论文]-2004
4. 王静.张剑涛.张汉义.邹积麟 基于IFC标准的CAD软件原型系统研究[会议论文]-2006
5. 张剑涛.刁波 建筑项目IFC描述—空间结构描述[会议论文]-2004
6. 代一帆.董靓.DAI Yi-fan.DONG Liang 关于建筑数据表示和交换的标准IFC[期刊论文]-建筑科学2008,24(8)
7. 陈毅林 对IFC的几点补充[会议论文]-
8. 张建平.曹铭.张洋 基于IFC标准和工程信息模型的建筑施工4D管理系统[会议论文]-
9. 徐锐 基于IFCXML的建筑数据共享平台的研究与设计[学位论文]2006
10. 唐春凤.刁波.张剑涛.张汉义 建筑信息化平台--从PKPM模型到IFC 模型的数据交换[会议论文]-2005
本文链接:http://d.g.wanfangdata.com.cn/Conference_5501974.aspx