CN112100195A - 一种基于语义分类的ifc模型变更检测方法 - Google Patents
一种基于语义分类的ifc模型变更检测方法 Download PDFInfo
- Publication number
- CN112100195A CN112100195A CN202011242801.0A CN202011242801A CN112100195A CN 112100195 A CN112100195 A CN 112100195A CN 202011242801 A CN202011242801 A CN 202011242801A CN 112100195 A CN112100195 A CN 112100195A
- Authority
- CN
- China
- Prior art keywords
- instance
- component
- eunc
- instances
- relationship
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Architecture (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于语义分类的IFC模型变更检测方法,该方法包括:从IFC模型A、B中提取构件实例列表、构件类型实例列表、扩展属性实例列表和关系实例列表;分别计算构件的变更情况,构件类型的变更情况及影响的构件实例集合,构件扩展属性的变更情况及影响的构件实例集合、构件类型集合;输出变更检测结果。该方法实现对IFC模型中构件变更、构件类型变更、扩展属性变更,以及构件之间、构件与类型之间的关联关系的变更的检测,实现对IFC模型中数据变更的精准分类,清晰表达构件变更的起因,方便模型使用;另外,该方法可以避免因循环引用导致的错误结果,提高准确率;并避免多层次的循环引用检测错误,大幅提高检测效率。
Description
技术领域
本发明涉及一种基于语义分类的IFC模型变更检测方法,属于BIM技术领域。
背景技术
建筑信息模型(building information model, BIM)是对建筑的三维数字化描述,是三维的建筑设计图纸。Industry foundation Classes (IFC)标准是对BIM模型的开放式、标准化描述格式, BIM建模软件创建的模型均可导出为IFC格式文件进行存储。
IFC标准以面向对象的方式进行数据存储,主要包括构件(标记为obj),构件类型(标记为type),扩展属性(标记为p);其中构件是IFC模型基本组成单位。用IFC格式描述BIM模型时,用IfcObject类及其IfcBeam、IfcColumn等子类的实例描述构件;用IfcTypeObject类及其IfcBeamType,IfcColumnType等子类的实例描述构件类型;用IfcPropertyDefinition类及其IfcPropertySet等子类的实例描述扩展属性。IFC模型还用IfcRelation类及其IfcRelDefinesByPropeties、IfcRelDefinesByTypes等子类的实例(标记为r)描述的构件、构件类型、扩展属性三者之间关系。关系实例r包括主构件RelatingObjec(本文简称r1)和辅助构件集合RelatedObjects(本文简称R1)两个特殊的复杂属性,实现对主构件r1与辅助构件集合R1中各个构件的关系描述。构件、构件类型、扩展属性和关系实例均包括唯一标识ID和属性等参数。
在设计或施工过程中,经常会对BIM进行设计变更,BIM的变更会导致建造成本、材料采购和施工计划的变更,因此施工单位需要快速检测不同版本BIM中变更的构件。目前由于缺乏对变更前BIM模型A和变更后模型B中变更构件的自动检测工具,主要采用人工检测方法,准确性和效率都比较低。有研究建议根据不同版本模型中构件ID 和属性的变化检测增加、删除、修改的构件;但由于模型中构件数量较大,并且每个构件的属性较多,特别是构件的复杂属性较多,对比过程耗时长;而且构件、关系之间的相互引用,会出现非常长的相互引用情况,从而导致构件变更检测效率非常低。譬如,所有空调水管构件都通过关系实例相互连接,可能导致1个构件变更,引起所有构件变更的错误监测结果。另外,目前的BIM中构件变更检测方法只能检测出模型中数据是否变化,并不能对变化进行归类,导致用户难以找到有用的信息;譬如,模型中采用的混凝土材料变更,会导致检测出众多构件变更信息,而用户关心的变更构件难以准确定位。
发明内容
针对现有技术中BIM模型不同版本之间构件变更检测存在的检测不可靠、效率低的问题,本发明提供了一种基于语义分类的IFC模型变更检测方法。
为解决以上技术问题,本发明包括如下技术方案:
一种基于语义分类的IFC模型变更检测方法,IFC模型包括构件实例、构件类型实例、扩展属性实例和关系实例,构件实例、构件类型实例、扩展属性实例和关系实例均包括唯一标识ID和属性;所述检测方法包括如下步骤:
步骤1:从IFC模型A中提取构件实例列表Ea、构件类型实例列表Ta、扩展属性实例列表Pa和关系实例列表Ra;从IFC模型B中提取构件实例列表Eb、构件类型实例列表Tb、扩展属性实例列表Pb和关系实例列表Rb;
步骤2:根据实例的ID和非关系属性,从Ea、Eb中计算新增的构件实例集合Eadd、删除的构件实例集合Edel、修改的构件实例集合Emod,以及未修改的构件实例集合Eunc;
步骤3:根据实例的ID和非关系属性,从Ta、Tb中计算新增的构件类型实例集合Tadd,删除的构件类型实例集合Tdel,修改的构件类型实例集合Tmod,以及未修改的构件类型实例集合Tunc;
步骤4:计算Tadd、Tdel和Tmod中构件类型实例关联的构件实例集合Etype;然后计算因构件类型实例修改而修改的构件实例集合Et= Eunc∩Etype;将Et从Eunc中删除,并将Et添加到Emod中;
步骤5:根据实例的ID和非关系属性,从Pa、Pb中计算新增的扩展属性实例集合Padd,删除的扩展属性实例集合Pdel,修改的扩展属性实例集合Pmod,以及未修改的扩展属性实例集合Punc;
步骤6:计算Padd,Pdel和Pmod中扩展属性实例关联的构件实例集合Epro和构件类型实例集合Tpro;然后计算因扩展属性实例修改而修改的构件类型实例集合Ty= Tunc∩Tpro;将Ty从Tunc中删除,并将Ty添加到Tmod中;再计算Ty中构件类型实例关联的构件实例集合Ept;最后计算因扩展属性实例修改而修改的构件实例集合Et=Eunc∩Epro∪Ept,并将Et从Eunc中删除,将Et添加到Emod中;
步骤7:根据实例的ID和属性,从Ra、Rb中计算新增的关系实例集合Radd,删除的关系实例集合Rdel,修改的关系实例集合Rmod,以及未修改的关系实例集合Runc;
步骤8:计算Radd、Rdel和Rmod中关系实例关联的构件实例集合Emodk;然后计算因关系实例变更而变更的构件实例集合Et,Et=Eunc∩Emodk;将Et从Eunc中删除,并将Et添加到Emod中;
步骤9:输出变更检测结果,包括:
输出修改的构件类型实例集合Tmod,新增的构件类型实例集合Tadd,删除的构件类型实例集合Tdel;影响的构件实例集合Etype;
输出修改的扩展属性实例集合Pmod,新增的扩展属性实例集合Padd,删除的扩展属性实例集合Pdel,影响的构件实例集合Epro,影响的构件类型实例集合Tpro;
输出修改的关系实例集合Rmod,新增的关系实例集合Radd,删除的关系实例集合Rdel,影响的构件实例集合Emodk;
输出修改的构件实例集合Emod,新增的构件实例集合Eadd,删除的构件实例集合Edel。
进一步,步骤1中,从IFC模型A中提取构件实例列表Ea、构件类型实例列表Ta、扩展属性实例列表Pa和关系实例列表Ra,具体可采用如下方法:
遍历模型中所有对象实例instance,判断instance的类型,如果类型是IfcObject或其子类,则将instance加入Ea;如果类型是IfcObjectType或其子类,则将instance加入Ta;如果类型是IfcPropertyDefinition或其子类,则将instance加入Pa;如果类型是IfcRelation或其子类,则将instance加入Ra。
进一步,步骤2中,根据实例的ID和非关系属性从Ea、Eb中计算新增的构件实例集合Eadd,删除的构件实例集合Edel,修改的构件实例集合Emod,以及未修改的构件实例集合Eunc,具体包括包括以下步骤:
步骤2.1:从Ea、Eb中提取所有构件实例的ID形成列表IDa={ida}和IDb={idb};
步骤2.2:未修改构件实例ID集合Eunc=IDa∩IDb,新增构件实例ID集合Eadd=IDb-Eunc,删除构件实例ID集合Edel=Ida-Eunc;
步骤2.3:依次遍历Eunc中每个ID,根据ID从模型A和模型B中提取对应的构件实例obja和objb;如果Eunc遍历完成进入步骤2.6;否则进入步骤2.4;
步骤2.4:依次判断obja和objb的各个非关系属性是否相等;如果相等,回到步骤2.3,否则进入步骤2.5;
步骤2.5:将obja的ID添加到Emod,并将obja的ID从Eunc中删除;
步骤2.6:根据Eunc、Eadd、Emod中存储的ID,从模型B中检索相应的构件实例加入Eunc、Eadd、Emod;根据Edel中存储的ID,从模型A中检索相应的构件实例加入到Edel。
进一步,步骤7中,根据实例的ID和属性,从Ra、Rb中计算新增的关系实例集合Radd、删除的关系实例集合Rdel、修改的关系实例集合Rmod,以及未修改的关系实例集合Runc,具体包括如下步骤:
步骤7.1:从Ra、Rb中提取所有关系实例的ID形成关系实例ID列表IDa={ida}和IDb={idb};
步骤7.2:未修改关系实例ID集合Eiunc=IDa∩IDb,新增关系实例ID集合Eiadd=IDb-Eiunc,删除关系实例ID集合Eidel=IDa-Eiunc;
步骤7.3:依次遍历Eiunc中每个ID,根据ID从Ra、Rb中提取对应的关系实例reaj和rebj;如果遍历完成进入步骤7.6;如果遍历未完成,进入步骤7.4;
步骤7.4:依次判定reaj和rebj的各个属性是否都相等;对于主构件r1和辅助构件R1中的构件,通过构件ID判定是否相等;如果相等,回到步骤7.3;反之,进入步骤7.5;
步骤7.5:将reaj的ID添加到Eimod,并从Eiunc中删除;回到步骤7.3;
步骤7.6:根据Eiunc、Eidel中存储的关系实例ID,从模型A中检索相应关系实例分别加入Eunc、Emod;根据Eimod、Eiadd中存储的关系实例ID,从模型B中检索相应关系实例分别加入Eadd、Emod。
进一步,步骤8中,计算Emodk的方法包括如下步骤:
步骤8.1:循环遍历Radd和Rdel中各个关系实例rej;如果循环结束进入步骤8.3,否则进入步骤8.2;
步骤8.2:将rej的主构件r1和辅助构件集合R1的构件添加到Emodk;返回步骤8.1;
步骤8.3:循环遍历修改的关系实例集合Rmod中各个实例reaj,从Rb中检索ID等于reaj的ID的rebj;如果循环结束则转到步骤8.7;否则判断reaj和rebj的主构件r1是否相等,若不相等进入步骤8.4;若相等继续判断reaj和rebj中除r1和R1 外的属性是否修改,若修改,进入步骤8.6;若没有修改,则是R1修改了,进入步骤8.5;
步骤8.4:将reaj的r1和R1所关联的所有构件实例添加到Emodk;将rebj的r1和R1所关联的所有构件实例添加到Emodk;将rebj添加到Radd,将reaj添加到Rdel,将reaj从Rmod中删除,返回步骤8.3;
步骤8.5:计算reaj的R1和rebj的R1的交集,记录为R1N,则将rebj的R1-R1N中构件添加到Emodk,将reaj的R1-R1N的构件也添加到Emodk;返回步骤8.3;
步骤8.6:将reaj和rebj的构件r1和R1集合所关联的所有构件添加到Emodk,返回步骤8.3;
步骤8.7:计算Et=Eunc∩Emodk,Emod=Emod+Et,Eunc=Eunc-Et;即将因关系变化因此变更的构件加入到Emod。
本发明由于采用以上技术方案,使之与现有技术相比,具有以下的优点和积极效果:本发明的基于语义分类的IFC模型中变更检测方法,实现对IFC模型中构件变更、构件类型变更、扩展属性变更,以及构件之间、构件与类型之间的关联关系的变更的检测,实现对IFC模型中数据变更的精准分类,清晰表达构件变更的起因,方便模型使用;另外,该方法可以避免因循环引用导致的错误结果,提高准确率;并避免多层次的循环引用检测错误,大幅提高检测效率。
附图说明
图1至图4分别为构件与构件、构件与构件类型、构件与扩展属性、构件类型与扩展属性的关系示意图;
图5为本发明IFC模型A的示意图;
图6为本发明IFC模型B的示意图;
图7为本发明一种基于语义分类的IFC模型变更检测方法的流程图;
图8为本发明根据实例的ID和非关系属性从Ea、Eb中计算Eadd、Edel、Emod、Eunc的方法的流程图;
图9为本发明根据实例的ID和属性从Ra、Rb中计算Radd、Rdel、Rmod、Runc的方法的流程图;
图10为本发明计算Emodk的方法的流程图。
具体实施方式
以下结合附图和具体实施例对本发明提供的一种基于语义分类的IFC模型变更检测方法作进一步详细说明。结合下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
本实施例公开了一种基于语义分类的IFC模型变更检测方法,下面对IFC模型的基本知识作进一步介绍。IFC模型包括构件、构件类型、扩展属性和关系等四种实例,这四种实例均包括唯一标识ID和属性。其中,构件、构件类型和扩展属性这三种实例的属性可能包括简单属性、复杂属性和关系属性;关系属性的值是一个或多个关系实例。关系实例的属性可能包括简单属性和复杂属性。其中,复杂属性可以拆分为几个简单属性,或者拆分为简单属性与复杂属性的组合并最终通过层层分解而拆分为多个简单属性。非关系属性是指不考虑关系属性,仅考虑简单属性和复杂属性。
BIM模型的构件通过构件实例进行描述,构件与构件之间的关系通过关系实例进行描述。在描述中,对于构件与构件实例、构件类型与构件类型实例、扩展属性与扩展属性实例、关系与关系实例有时不进行区分。
结合图1至图4所示,1个构件可能与多个构件存在关系,比如一个柱构件可能连接多个梁构件;1个构件类型可能关联多个构件,比如混凝土柱的构件类型可能涉及到多个柱构件;1个扩展属性可能关联多个构件;1个构件类型可能关联多个扩展属性,1个扩展属性也可能关联多个构件。
图5和图6给出了模型A和模型B的示意图,用简单的模型对检测方法进行说明。
其中,IFC模型A的描述片段为:
#447=IFCCOLUMNTYPE('32CiwCvHr4pPJqqyjbRkvq',#41,'300x450mm',$,$,$,(#446),'7076','300 x 450mm',.COLUMN.);
#457=IFCCOLUMN('32CiwCvHr4pPJqsyjbRkvq',#41,'obj1',$,'300x450mm',#456,#453,'10379');
#517=IFCBEAMTYPE('1FFmdT9IbEGuv0RPLi6Hsx',#41,'400x800mm',$,$,$,(#516),'11328','400 x 800mm',.BEAM.);
#529=IFCBEAM('1FFmdT9IbEGuv0PPLi6Hsx',#41,'obj2',$,'400x800mm',#528,#523,'11375');
#1617=IFCRELDEFINESBYTYPE('0pYpxANSPC1ua2TXL_j57H',#41,$,$,(#529),#517);
#1620=IFCRELDEFINESBYTYPE('0z_wtMjQv2Wgjt7_Mw9upC',#41,$,$,(#457),#447);
#460=IFCPROPERTYSET('2VsP5GCJ111BDf4L84y$_i',#41,'Pset_ColumnCommon',p1,(#202,#203,#204));
#462=IFCRELDEFINESBYPROPERTIES('3urlWYu9rBqwedj$Vz2Ypf',#41,$,$,(#457),#460)。
其中,IFC模型B的描述片段为:
#447=IFCCOLUMNTYPE('32CiwCvHr4pPJqqyjbRkvq',#41,'300x450mm',$,$,$,(#446),'7076','300 x 450mm',.COLUMN.);
#457=IFCCOLUMN('32CiwCvHr4pPJqsyjbRkvq',#41,'obj1',$,'300x450mm',#456,#453,'10379');
#517=IFCBEAMTYPE('1FFmdT9IbEGuv0RPLi6Hsx',#41,'400x800mm',$,$,$,(#516),'11328','400 x 800mm',.BEAM.);
#529=IFCBEAM('1FFmdT9IbEGuv0PPLi6Hsx',#41,'obj2',‘ConcreteBeam’,'400 x800mm',#528,#523,'11375');
#1617=IFCRELDEFINESBYTYPE('0pYpxANSPC1ua2TXL_j57H',#41,$,$,(#529, #710,#774),#517);
#1620=IFCRELDEFINESBYTYPE('0z_wtMjQv2Wgjt7_Mw9upC',#41,$,$,(#457),#447);
#460=IFCPROPERTYSET('2VsP5GCJ111BDf4L84y$_i',#41,'Pset_ConcreteColumn',p1,(#202,#203,#204));
#462=IFCRELDEFINESBYPROPERTIES('3urlWYu9rBqwedj$Vz2Ypf',#41,$,$,(#457,#385,#421),#460);
#710=IFCBEAM('1FFmdT9IbEGuv0PPLi6HrT',#41,'obj4',$,‘obj4',#544,#708,'11401');
#424=IFCPROPERTYSET('2THwVD0Wr8hgRSqHPtyU9t',#41,'Pset_ConcreteBeam',p2,(#102,#203,#204));
#774=IFCBEAM('1FFmdT9IbEGuv0PPLi6Hrr',#41,'obj5',$,'400x800mm',#773,#768,'11425');
#385=IFCCOLUMN('32CiwCvHr4pPJqsyjbRk48',#41,'obj3',$,'300x450mm',#384,#381,'10231');
#411=IFCCOLUMNTYPE('32CiwCvHr4pPJqqyjbRkx5',#41,'type3',$,$,$,(#410),'7076','300 x 450mm',.COLUMN.);
#421=IFCCOLUMN('32CiwCvHr4pPJqsyjbRkx5',#41,'obj6',$,'300x450mm',#420,#417,'10298');
#1623=IFCRELDEFINESBYTYPE('1_pTDrm7bBQQSMC90VFmQL',#41,$,$,(#421,#385),#411);
#1462=FCRELDEFINESBYPROPERTIES('3urlWYu9rBqwedj$Vz2Ypf',#41,$,$,(#774,#710),#424)。
在计算机语言中,构件、构件类型、扩展属性和关系等实例均以代码的形式存在,每一行代码代表一个实例,比如:
“#447=IFCCOLUMNTYPE('32CiwCvHr4pPJqqyjbRkvq',#41,'300x450mm',$,$,$,(#446),'7076','300 x 450mm',.COLUMN.)”为一实例,“#447”为该实例唯一代码,IFCCOLUMNTYPE表示构件类型,因此该实例为构件类型实例;IFCCOLUMNTYPE后面的内容表示构件类型实例的属性;
“#457=IFCCOLUMN('32CiwCvHr4pPJqsyjbRkvq',#41,'obj1',$,'300x450mm',#456,#453,'10379')”为一实例,“#457”为该实例唯一代码,IFCCOLUMN表示构件,因此该实例为构件实例;IFCCOLUMN后面的内容表示构件实例的属性;
“#460=IFCPROPERTYSET('2VsP5GCJ111BDf4L84y$_i',#41,'Pset_ColumnCommon',p1,(#202,#203,#204))”为一实例,“#460”为该实例唯一代码,IFCPROPERTYSET表示扩展属性,因此该实例为扩展属性实例;IFCPROPERTYSET后面的内容表示扩展属性实例的属性;
“#462=IFCRELDEFINESBYPROPERTIES('3urlWYu9rBqwedj$Vz2Ypf',#41,$,$,(#457),#460)”为一实例,“#462”为该实例唯一代码,IFCRELDEFINES BYPROPERTIES表示关系实例,因此该实例为关系实例;IFCRELDEFINESBYPROPERTIES后面的内容表示关系实例的属性。
其中,IFC模型A的描述片段中:#447的实例为构件类型type1,#457的实例为构件obj1,#517的实例为构件类型type2,#529的实例为构件obj2,#1617的实例为type2与obj2之间关系re2,#1620的实例为type1与obj1之间关系re1,#460的实例为扩展属性p1,#462的实例为扩展属性p1与构件obj1之间关系re3。
其中,IFC模型B的描述片段中:#447的实例为构件类型type1,#457的实例为构件obj1,#517的实例为构件类型type2,#529的实例为构件obj2,#1617的实例为构件类型type2与构件obj2、obj4之间关系re2,#1620的实例为构件类型type1与构件obj1之间关系re1,#460的实例为扩展属性p1,#462的实例为扩展属性p1与构件obj1之间关系re3;#710的实例为构件obj4,#424的实例为扩展属性p2,#774的实例为构件obj5,#385的实例为构件obj3,#411的实例为构件类型type3,#421的实例为构件obj6,#1623的实例为构件类型type3与构件obj3、obj6之间的关系re4,#1462的实例为扩展属性p2与构件obj4、obj5之间的关系re5。
本实施例提供的一种基于语义分类的IFC模型变更检测方法,如图7所示,所述检测方法包括如下步骤:
步骤1:从IFC模型A中提取构件实例列表Ea、构件类型实例列表Ta、扩展属性实例列表Pa和关系实例列表Ra;从IFC模型B中提取构件实例列表Eb、构件类型实例列表Tb、扩展属性实例列表Pb和关系实例列表Rb。
从IFC模型A中提取构件实例列表Ea、构件类型实例列表Ta、扩展属性实例列表Pa和关系实例列表Ra,具体可采用如下方法:
遍历模型中所有实例instance;
判断instance的类型,如果类型是IfcObject或其子类,则将instance加入Ea;如果类型是IfcObjectType或其子类,则将instance加入Ta;如果类型是IfcPropertyDefinition或其子类。结合图5、图6及IFC模型A、模型B的描述片段可知,Ea包括obj1和obj2,Ta包括type1和type2,Pa包括扩展属性p1,Ra包括re1、re2、re3;Eb包括obj1、obj2、obj3、obj4、obj5、obj6,Tb包括type1、type2、type3,Pb包括扩展属性p1、p2,Rb包括re1、re2、re3、re4、re5。
步骤2:根据实例的ID和非关系属性,从Ea、Eb中计算新增的构件实例集合Eadd、删除的构件实例集合Edel、修改的构件实例集合Emod,以及未修改的构件实例集合Eunc。
需要说明的是,IFC模型中实际上很多构件通过关系实例相互关联,甚至循环关联。譬如柱子obj1关联到梁L1,L1关联到柱子obj2,obj2关联到梁L2,L2又关联到柱子obj1,因此如果不把关系属性从构件属性中排除,可能出现递归路径循环,计算会非常复杂,严重影响效率。由于未考虑关系属性,步骤2中计算的Eunc可能存在关系属性有变更的情形,也有可能存在构件类型变更的情形,会在后续步骤中加以修正。
作为举例,如图8所示,步骤2中计算方法包括以下步骤:
步骤2.1:提取模型A和模型B中所有构件实例的ID形成列表IDa={ida}和IDb={idb};结合图5、图6及IFC模型A、模型B的描述片段可知,IDa={#457,#529},IDb={#457,#529,#710,#774,#385,#421};
步骤2.2:未修改构件实例ID集合Eunc=IDa∩IDb,新增构件实例ID集合Eadd=IDb-Eunc,删除构件实例ID集合Edel=Ida-Eunc;结合图5、图6及IFC模型A、模型B的描述片段可知,Eunc={#457,#529},Eadd={#710,#774,#385,#421},Edel为空集;
步骤2.3:依次遍历Eunc中每个ID,根据ID从模型A和模型B中提取对应的构件实例obja和objb;如果Eunc遍历完成进入步骤2.6;否则进入步骤2.4;
步骤2.4:依次判断obja和objb的各个非关系属性是否相等;如果相等,回到步骤2.3,否则进入步骤2.5;步骤2.4只递归非关系属性,无论是复杂属性和简单属性,递归路径都不会很长,也不会循环;
步骤2.5:将obja的ID添加到Emod,并将obja的ID从Eunc中删除;
结合图5、图6及IFC模型A、模型B的描述片段可知,当ID=#529,则obja=obj2a,objb=obj2b,其中obj2b属性发生变化,将#529添加至Emod,并从Eunc中删除,此时,Eunc={#457},Emod={#529};
步骤2.6:根据Eunc、Eadd、Emod中存储的ID,从模型B中检索相应的构件实例加入Eunc、Eadd、Emod;根据Edel中存储的ID,从模型A中检索相应的构件实例加入到Edel。结合图5、图6及IFC模型A、模型B的描述片段可知,未修改的构件实例集合Eunc={obj1};Eadd={obj3、obj4、obj5、obj6};Emod={obj2};Edel为空。
步骤3:根据实例的ID和非关系属性,从Ta、Tb中计算新增的构件类型实例集合Tadd,删除的构件类型实例集合Tdel,修改的构件类型实例集合Tmod,以及未修改的构件类型实例集合Tunc。步骤3可采用与步骤2类似的计算方法,不再赘述。结合图5、图6及IFC模型A、模型B的描述片段可知,未修改的构件类型集合Tunc包括obj1的type1;修改的构件实例集合Tmod包括构件obj2对应的type2(模型B的type2增加了“ConcreteBeam”标记);模型A中没有而模型B中新增的构件实例集合Tadd包括obj3和obj6的type3。
步骤4:计算Tadd、Tdel和Tmod中构件类型实例关联的构件实例集合Etype;然后计算因构件类型实例修改而修改的构件实例集合Et= Eunc∩Etype;将Et从Eunc中删除,并将Et添加到Emod中。
优选的计算构件类型实例关联的构件实例集合Etype的方法为:从构件类型实例的属性Types的值中找到关系实例rdt,然后从rdt的RelatedObjects属性中获得构件类型type关联的所有构件,加入集合Etype;然后计算因类型修改而变更的构件实例集合Et=Eunc ∩Etype,将Et添加到Emod中,并将Et从Eunc中删除,即,Emod= Emod+Et,Eunc=Eunc-Et。
结合图5、图6及IFC模型A、模型B的描述片段可知,Tadd、Tdel和Tmod中涉及的构件类型实例包括type2、type3,关联的构件实例集合Etype={obj2,obj3,obj4,obj5,obj6};则Et=Eunc∩Etype={obj2},Emod=Emod+Et={obj2},Eunc=Eunc-Et={obj1}。
步骤5:根据实例的ID和非关系属性,从Pa、Pb中计算新增的扩展属性实例集合Padd,删除的扩展属性实例集合Pdel,修改的扩展属性实例集合Pmod,以及未修改的扩展属性实例集合Punc。
结合图5、图6及IFC模型A、模型B的描述片段可知,模型B修改了的扩展属性Pmod={p1},模型A中不存在而模型B中新增的扩展属性Padd={p2},Pdel为空。
步骤6:计算Padd,Pdel和Pmod中扩展属性实例关联的构件实例集合Epro和构件类型实例集合Tpro;然后计算因扩展属性实例修改而修改的构件类型实例集合Ty= Tunc∩Tpro;将Ty从Tunc中删除,并将Ty添加到Tmod中;再计算Ty中构件类型实例关联的构件实例集合Ept;最后计算因扩展属性实例修改而修改的构件实例集合Et=Eunc∩Epro ∪Ept,并将Et从Eunc中删除,将Et添加到Emod中。
优选的计算扩展属性实例property关联构件实例集合的方法为:从property实例的属性DefinesOccurrence的值中找到关系实例rdp,然后从rdp的RelatedObjects属性中获得property关联的所有构件,加入集合Epro。
结合图5、图6及IFC模型A、模型B的描述片段可知,Pmod={p1},Padd={p2},p1的DefinesOccurrence属性的值是re3(ID为#462),re3关联的构件实例集合为{obj1,obj3,obj6},p2的DefinesOccurrence属性的值是re5(ID为#1462),re5关联的构件实例集合为{obj4,obj5},p1和p2的DefinesType为空;Epro={ obj1,obj3,obj4,obj5,obj6}。因此,Tmode和Tunc没有变化;Et=Eunc∩Epro ∪Ept,Emod=Emod+Ep={obj1,obj2};Eunc=Eunc-Ep为空集。
优选的计算property关联构件类型集合的方法为:从property实例的属性DefinesType的值中找到property关联的所有构件类型实例,加入集合Tpro。计算因扩展属性变更而变更的构件类型Ty,Ty=Tunc∩Tpro,将Ty添加到Tmod中,Tmod=Tmod+Ty,并将Ty从Tunc中删除,Tunc=Tunc-Ty。
步骤7:根据实例的ID和属性,从Ra、Rb中计算新增的关系实例集合Radd、删除的关系实例集合Rdel、修改的关系实例集合Rmod,以及未修改的关系实例集合Runc。正如前文中所介绍的:构件、构件类型和扩展属性的关系属性的值是一个或多个关系实例,前述步骤中未考虑的关系属性,通过本步骤的关系实例进行修正。
如图9所示,步骤7具体包括如下步骤:
步骤7.1:提取从Ra、Rb中所有关系实例的ID形成关系实例ID列表IDa={ida}和IDb={idb};结合图5、图6及IFC模型A、模型B的描述片段可知,IDa={#1617,#1620},IDb={#1617,#1620,#462,#1623,#1462};
步骤7.2:未修改关系实例ID集合Eiunc=IDa∩IDb,新增关系实例ID集合Eiadd=IDb-Eiunc,删除关系实例ID集合Eidel=IDa-Eiunc;结合图5、图6及IFC模型A、模型B的描述片段可知,Eiunc=IDa∩IDb={#1617,#1620},Eiadd=IDb-Eunc={#462,#1623,#1462},Eidel=IDa-Eunc为空集;
步骤7.3:依次遍历Eiunc中每个ID,根据ID从Ra、Rb中提取对应的关系实例reaj和rebj;如果遍历完成进入步骤7.6;如果遍历未完成,进入步骤7.4;结合图5、图6及IFC模型A、模型B的描述片段可知,reaj包括re1和re2,rebj包括re1、re2、re3、re4、re5;
步骤7.4:根据关系实例ID依次判定reaj和rebj是否相等;如果相等,回到步骤7.3;反之,进入步骤7.5;判定时不考虑具体关系实例的属性;结合图5、图6及IFC模型A、模型B的描述片段可知,re1的属性未变更,re2的属性有变化;
步骤7.5:将reaj的ID添加到Eimod,并从Eiunc中删除;回到步骤7.3;结合图5、图6及IFC模型A、模型B的描述片段可知,Eimod={#1620},Eiunc={#1617};
步骤7.6:根据Eiunc、Eidel中存储的关系实例ID,从模型A中检索相应关系实例分别加入Eunc、Emod;根据Eimod、Eiadd中存储的关系实例ID,从模型B中检索相应关系实例分别加入Eadd、Emod;结合图5、图6及IFC模型A、模型B的描述片段可知,模型B中新增的关系实例Radd={re4,re5},两个模型中都存在但修改的关系实例Rmod={re3,re2},没有变化的Runc={re1}。
步骤8:计算Radd、Rdel和Rmod中关系实例关联的构件实例集合Emodk;然后计算因关系实例变更而变更的构件实例集合Et,Et=Eunc∩Emodk;将Et从Eunc中删除,并将Et添加到Emod中。
如图10所示,优选的计算Emodk的方法包括以下步骤:
步骤8.1:循环遍历Radd和Rdel中各个关系实例rej;如果循环结束进入步骤8.3,否则进入步骤8.2;结合图5、图6及IFC模型A、模型B的描述片段可知,Radd和Rdel中各个关系实例rej包括re4、re5;
步骤8.2:将rej的主构件r1和辅助构件集合R1的构件添加到Emodk;返回步骤8.1;也就是将删除或新增了关联关系的构件实例均添加到构件变更检测结果;
需要说明的是关系实例是涉及一个构件与若干构件之间的关系,即主构件r1和辅助构件集合R1之间的关系;结合图5、图6及IFC模型A、模型B的描述片段可知,Emodk={obj3,obj4,obj5,obj6};
步骤8.3:循环遍历修改的关系实例集合Rmod中各个实例reaj,从Rb中检索ID等于reaj的ID的rebj;如果循环结束则转到步骤8.7;否则判断reaj和rebj的主构件r1是否相等,若不相等进入步骤8.4;若相等继续判断reaj和rebj中除r1和R1 外的属性是否修改,若修改,进入步骤8.6;若没有修改,则是R1修改了,进入步骤8.5;
结合图5、图6及IFC模型A、模型B的描述片段可知,关系实例集合Rmod中各个实例reaj为re3或re2,re3和re2的辅助构件集合R1变化了,主构件r1和其他属性均没变化,因此进入步骤8.5;
步骤8.4:将reaj的r1和R1所关联的所有构件实例添加到Emodk;将rebj的r1和R1所关联的所有构件实例添加到Emodk;将rebj添加到Radd,将reaj添加到Rdel,将reaj从Rmod中删除,返回步骤8.3;
步骤8.5:计算reaj的R1和rebj的R1的交集,记录为R1N(未发生关系变化的构件),则将rebj的R1-R1N中构件(新增了关系的构件)添加到Emodk,将reaj的R1-R1N的构件(删除了关系的构件)也添加到Emodk;返回步骤8.3;
结合图5、图6及IFC模型A、模型B的描述片段可知,以re2为例,A模型的re2的R1={obj2(#529)},B模型的re2的R1={obj2(#529)、obj4(#710)、obj5(#774)},R1N={obj2(#529)}∩{obj2(#529)、obj4(#710)、obj5(#774)}={ obj2(#529)};则reaj的R1-R1N为空集,rebj的R1-R1N={ obj4(#710)、obj5(#774) },这些构件新增了关系;Emodk={ obj3(#385),obj4(#710),obj5(#774),obj6(#421)};
步骤8.6:将reaj和rebj的r1和R1中所关联的所有构件添加到Emodk,返回步骤8.3;
如果关系实例的其他属性发生变化,r1和R1中所有构件都会影响变更,因加入Emodk;
步骤8.7:计算Et=Eunc∩Emodk,Emod=Emod+Et,Eunc=Eunc-Et;即将因关系变化因此变更的构件加入到Emod;结合图5、图6及IFC模型A、模型B的描述片段可知,Eunc为空集,所以Et为空集,Emod={obj1,obj2}。
步骤9:输出变更检测结果,包括:
输出修改的构件类型实例集合Tmod,新增的构件类型实例集合Tadd,删除的构件类型实例集合Tdel;影响的构件实例集合Etype;结合图5、图6及IFC模型A、模型B的描述片段可知,输出修改的构件类型集合Tmod={type2(#517)},新增的构件类型集合Tadd={type3(#411)},删除的构件为空,影响的构件实例集合为{obj2(#529),obj3(#385),obj4(#710),obj5(#774),obj6(#421)};
输出修改的扩展属性实例集合Pmod,新增的扩展属性实例集合Padd,删除的扩展属性实例集合Pdel,影响的构件实例集合Epro,影响的构件类型实例集合Tpro;结合图5、图6及IFC模型A、模型B的描述片段可知,输出修改的扩展属性Pmod={p1(#460)},新增的扩展属性Padd ={ p2(#424)},影响的构件实例集合为Epro={ obj1(#457),obj3(#385),obj4(#710),obj5(#774),obj6(#421)},影响的构件类型为空;
输出修改的关系实例集合Rmod,新增的关系实例集合Radd,删除的关系实例集合Rdel,影响的构件实例集合Emodk;结合图5、图6及IFC模型A、模型B的描述片段可知,输出新增的关系实例Radd={re4(#1623),re5(#1462)},修改的关系实例Rmod={re3(#462),re2(1617)},影响的构件实例集合Emodk={ obj3(#385),obj4(#710),obj5(#774),obj6(#421)};
输出修改的构件实例集合Emod,新增的构件实例集合Eadd,删除的构件实例集合Edel;结合图5、图6及IFC模型A、模型B的描述片段可知,输出修改的构件实例集合Emod={ obj1(#457), obj2(#529)},新增的构件实例集合Eadd={ obj3(#385),obj4(#710),obj5(#774),obj6(#421)},删除的构件实例集合Edel为空。
实际应用验证表明,该方法可以提高变更检测效率50%以上,可以避免因循环引用导致的错误结果,提高准确率;并准确表达构件变更的起因,方便分析和使用。
上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (5)
1.一种基于语义分类的IFC模型变更检测方法,IFC模型包括构件实例、构件类型实例、扩展属性实例和关系实例,构件实例、构件类型实例、扩展属性实例和关系实例均包括唯一标识ID和属性;其特征在于,所述检测方法包括如下步骤:
步骤1:从IFC模型A中提取构件实例列表Ea、构件类型实例列表Ta、扩展属性实例列表Pa和关系实例列表Ra;从IFC模型B中提取构件实例列表Eb、构件类型实例列表Tb、扩展属性实例列表Pb和关系实例列表Rb;
步骤2:根据实例的ID和非关系属性,从Ea、Eb中计算新增的构件实例集合Eadd、删除的构件实例集合Edel、修改的构件实例集合Emod,以及未修改的构件实例集合Eunc;
步骤3:根据实例的ID和非关系属性,从Ta、Tb中计算新增的构件类型实例集合Tadd,删除的构件类型实例集合Tdel,修改的构件类型实例集合Tmod,以及未修改的构件类型实例集合Tunc;
步骤4:计算Tadd、Tdel和Tmod中构件类型实例关联的构件实例集合Etype;然后计算因构件类型实例修改而修改的构件实例集合Et= Eunc∩Etype;将Et从Eunc中删除,并将Et添加到Emod中;
步骤5:根据实例的ID和非关系属性,从Pa、Pb中计算新增的扩展属性实例集合Padd,删除的扩展属性实例集合Pdel,修改的扩展属性实例集合Pmod,以及未修改的扩展属性实例集合Punc;
步骤6:计算Padd,Pdel和Pmod中扩展属性实例关联的构件实例集合Epro和构件类型实例集合Tpro;然后计算因扩展属性实例修改而修改的构件类型实例集合Ty= Tunc∩Tpro;将Ty从Tunc中删除,并将Ty添加到Tmod中;再计算Ty中构件类型实例关联的构件实例集合Ept;最后计算因扩展属性实例修改而修改的构件实例集合Et=Eunc∩Epro∪Ept,并将Et从Eunc中删除,将Et添加到Emod中;
步骤7:根据实例的ID和属性,从Ra、Rb中计算新增的关系实例集合Radd,删除的关系实例集合Rdel,修改的关系实例集合Rmod,以及未修改的关系实例集合Runc;
步骤8:计算Radd、Rdel和Rmod中关系实例关联的构件实例集合Emodk;然后计算因关系实例变更而变更的构件实例集合Et,Et=Eunc∩Emodk;将Et从Eunc中删除,并将Et添加到Emod中;
步骤9:输出变更检测结果,包括:
输出修改的构件类型实例集合Tmod,新增的构件类型实例集合Tadd,删除的构件类型实例集合Tdel;影响的构件实例集合Etype;
输出修改的扩展属性实例集合Pmod,新增的扩展属性实例集合Padd,删除的扩展属性实例集合Pdel,影响的构件实例集合Epro,影响的构件类型实例集合Tpro;
输出修改的关系实例集合Rmod,新增的关系实例集合Radd,删除的关系实例集合Rdel,影响的构件实例集合Emodk;
输出修改的构件实例集合Emod,新增的构件实例集合Eadd,删除的构件实例集合Edel。
2.如权利要求1所述的基于语义分类的IFC模型变更检测方法,其特征在于,步骤1中,从IFC模型A中提取构件实例列表Ea、构件类型实例列表Ta、扩展属性实例列表Pa和关系实例列表Ra,具体可采用如下方法:
遍历模型中所有对象实例instance,判断instance的类型,如果类型是IfcObject或其子类,则将instance加入Ea;如果类型是IfcObjectType或其子类,则将instance加入Ta;如果类型是IfcPropertyDefinition或其子类,则将instance加入Pa;如果类型是IfcRelation或其子类,则将instance加入Ra。
3.如权利要求1所述的基于语义分类的IFC模型变更检测方法,其特征在于,步骤2中,根据实例的ID和非关系属性从Ea、Eb中计算新增的构件实例集合Eadd,删除的构件实例集合Edel,修改的构件实例集合Emod,以及未修改的构件实例集合Eunc,具体包括包括以下步骤:
步骤2.1:从Ea、Eb中提取所有构件实例的ID形成列表IDa={ida}和IDb={idb};
步骤2.2:未修改构件实例ID集合Eunc=IDa∩IDb,新增构件实例ID集合Eadd=IDb-Eunc,删除构件实例ID集合Edel=Ida-Eunc;
步骤2.3:依次遍历Eunc中每个ID,根据ID从模型A和模型B中提取对应的构件实例obja和objb;如果Eunc遍历完成进入步骤2.6;否则进入步骤2.4;
步骤2.4:依次判断obja和objb的各个非关系属性是否相等;如果相等,回到步骤2.3,否则进入步骤2.5;
步骤2.5:将obja的ID添加到Emod,并将obja的ID从Eunc中删除;
步骤2.6:根据Eunc、Eadd、Emod中存储的ID,从模型B中检索相应的构件实例加入Eunc、Eadd、Emod;根据Edel中存储的ID,从模型A中检索相应的构件实例加入到Edel。
4.如权利要求1所述的基于语义分类的IFC模型变更检测方法,其特征在于,步骤7中,根据实例的ID和属性,从Ra、Rb中计算新增的关系实例集合Radd、删除的关系实例集合Rdel、修改的关系实例集合Rmod,以及未修改的关系实例集合Runc,具体包括如下步骤:
步骤7.1:从Ra、Rb中提取所有关系实例的ID形成关系实例ID列表IDa={ida}和IDb={idb};
步骤7.2:未修改关系实例ID集合Eiunc=IDa∩IDb,新增关系实例ID集合Eiadd=IDb-Eiunc,删除关系实例ID集合Eidel=IDa-Eiunc;
步骤7.3:依次遍历Eiunc中每个ID,根据ID从Ra、Rb中提取对应的关系实例reaj和rebj;如果遍历完成进入步骤7.6;如果遍历未完成,进入步骤7.4;
步骤7.4:依次判定reaj和rebj的各个属性是否都相等;对于主构件r1和辅助构件R1中的构件,通过构件ID判定是否相等;如果相等,回到步骤7.3;反之,进入步骤7.5;
步骤7.5:将reaj的ID添加到Eimod,并从Eiunc中删除;回到步骤7.3;
步骤7.6:根据Eiunc、Eidel中存储的关系实例ID,从模型A中检索相应关系实例分别加入Eunc、Emod;根据Eimod、Eiadd中存储的关系实例ID,从模型B中检索相应关系实例分别加入Eadd、Emod。
5.如权利要求1所述的基于语义分类的IFC模型变更检测方法,其特征在于,步骤8中,计算Emodk的方法包括如下步骤:
步骤8.1:循环遍历Radd和Rdel中各个关系实例rej;如果循环结束进入步骤8.3,否则进入步骤8.2;
步骤8.2:将rej的主构件r1和辅助构件集合R1的构件添加到Emodk;返回步骤8.1;
步骤8.3:循环遍历修改的关系实例集合Rmod中各个实例reaj,从Rb中检索ID等于reaj的ID的rebj;如果循环结束则转到步骤8.7;否则判断reaj和rebj的主构件r1是否相等,若不相等进入步骤8.4;若相等继续判断reaj和rebj中除r1和R1 外的属性是否修改,若修改,进入步骤8.6;若没有修改,则是R1修改了,进入步骤8.5;
步骤8.4:将reaj的r1和R1所关联的所有构件实例添加到Emodk;将rebj的r1和R1所关联的所有构件实例添加到Emodk;将rebj添加到Radd,将reaj添加到Rdel,将reaj从Rmod中删除,返回步骤8.3;
步骤8.5:计算reaj的R1和rebj的R1的交集,记录为R1N,则将rebj的R1-R1N中构件添加到Emodk,将reaj的R1-R1N的构件也添加到Emodk;返回步骤8.3;
步骤8.6:将reaj和rebj的构件r1和R1集合所关联的所有构件添加到Emodk,返回步骤8.3;
步骤8.7:计算Et=Eunc∩Emodk,Emod=Emod+Et,Eunc=Eunc-Et;即将因关系变化因此变更的构件加入到Emod。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011242801.0A CN112100195B (zh) | 2020-11-10 | 2020-11-10 | 一种基于语义分类的ifc模型变更检测方法 |
PCT/CN2021/089481 WO2022100008A1 (zh) | 2020-11-10 | 2021-04-25 | 一种基于语义分类的ifc模型变更检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011242801.0A CN112100195B (zh) | 2020-11-10 | 2020-11-10 | 一种基于语义分类的ifc模型变更检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100195A true CN112100195A (zh) | 2020-12-18 |
CN112100195B CN112100195B (zh) | 2021-02-05 |
Family
ID=73785191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011242801.0A Active CN112100195B (zh) | 2020-11-10 | 2020-11-10 | 一种基于语义分类的ifc模型变更检测方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112100195B (zh) |
WO (1) | WO2022100008A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112487523A (zh) * | 2020-11-10 | 2021-03-12 | 上海建工四建集团有限公司 | 一种bim模型中构件变更的快速检测方法 |
CN112559455A (zh) * | 2020-12-22 | 2021-03-26 | 中设数字技术股份有限公司 | 基于语义网络技术的ifc数据管理系统和方法 |
CN113535736A (zh) * | 2021-09-09 | 2021-10-22 | 上海建工四建集团有限公司 | 一种ifc模型存储方法 |
CN113568989A (zh) * | 2021-08-02 | 2021-10-29 | 上海建工四建集团有限公司 | 一种ifc子模型提取方法 |
CN113742815A (zh) * | 2021-08-02 | 2021-12-03 | 上海建工四建集团有限公司 | 一种ifc子模型融合方法 |
WO2022100008A1 (zh) * | 2020-11-10 | 2022-05-19 | 上海建工四建集团有限公司 | 一种基于语义分类的ifc模型变更检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160267123A1 (en) * | 2013-03-15 | 2016-09-15 | Iti - Innovative Technology Inc. | Method for propagating information between a building information model and a specification document |
CN110069818A (zh) * | 2019-03-18 | 2019-07-30 | 中铁第四勘察设计院集团有限公司 | 一种基于Ilogic的铁路工程构件参数化方法 |
CN110991065A (zh) * | 2019-12-11 | 2020-04-10 | 清华大学 | 一种建筑信息模型中设计变更自动识别方法 |
CN111400389A (zh) * | 2020-03-25 | 2020-07-10 | 长春工程学院 | 基于ifc扩展的运维5d-bim数据集成共享系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787156B (zh) * | 2016-02-04 | 2018-07-24 | 嘉兴国电通新能源科技有限公司 | 一种基于ifc实体数据抽取的子模型生成方法 |
CN108428196B (zh) * | 2017-08-12 | 2021-12-17 | 中民筑友科技投资有限公司 | 基于bim装配式建筑构件的装车顺序确定方法及装置 |
CN112100195B (zh) * | 2020-11-10 | 2021-02-05 | 上海建工四建集团有限公司 | 一种基于语义分类的ifc模型变更检测方法 |
-
2020
- 2020-11-10 CN CN202011242801.0A patent/CN112100195B/zh active Active
-
2021
- 2021-04-25 WO PCT/CN2021/089481 patent/WO2022100008A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160267123A1 (en) * | 2013-03-15 | 2016-09-15 | Iti - Innovative Technology Inc. | Method for propagating information between a building information model and a specification document |
CN110069818A (zh) * | 2019-03-18 | 2019-07-30 | 中铁第四勘察设计院集团有限公司 | 一种基于Ilogic的铁路工程构件参数化方法 |
CN110991065A (zh) * | 2019-12-11 | 2020-04-10 | 清华大学 | 一种建筑信息模型中设计变更自动识别方法 |
CN111400389A (zh) * | 2020-03-25 | 2020-07-10 | 长春工程学院 | 基于ifc扩展的运维5d-bim数据集成共享系统 |
Non-Patent Citations (2)
Title |
---|
VLADIMIR BAZJANAC: "Performance Simulation Performance Simulation", 《CALIFORNIA DIGITAL LIBRARY》 * |
高歌 等: "基于知识库的 IFC 模型检查方法研究", 《图学学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112487523A (zh) * | 2020-11-10 | 2021-03-12 | 上海建工四建集团有限公司 | 一种bim模型中构件变更的快速检测方法 |
WO2022100008A1 (zh) * | 2020-11-10 | 2022-05-19 | 上海建工四建集团有限公司 | 一种基于语义分类的ifc模型变更检测方法 |
CN112487523B (zh) * | 2020-11-10 | 2024-03-26 | 上海建工四建集团有限公司 | 一种bim模型中构件变更的快速检测方法 |
CN112559455A (zh) * | 2020-12-22 | 2021-03-26 | 中设数字技术股份有限公司 | 基于语义网络技术的ifc数据管理系统和方法 |
CN112559455B (zh) * | 2020-12-22 | 2024-02-23 | 中设数字技术股份有限公司 | 基于语义网络技术的ifc数据管理系统和方法 |
CN113568989A (zh) * | 2021-08-02 | 2021-10-29 | 上海建工四建集团有限公司 | 一种ifc子模型提取方法 |
CN113742815A (zh) * | 2021-08-02 | 2021-12-03 | 上海建工四建集团有限公司 | 一种ifc子模型融合方法 |
CN113568989B (zh) * | 2021-08-02 | 2024-04-19 | 上海建工四建集团有限公司 | 一种ifc子模型提取方法 |
CN113742815B (zh) * | 2021-08-02 | 2024-06-04 | 上海建工四建集团有限公司 | 一种ifc子模型融合方法 |
CN113535736A (zh) * | 2021-09-09 | 2021-10-22 | 上海建工四建集团有限公司 | 一种ifc模型存储方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022100008A1 (zh) | 2022-05-19 |
CN112100195B (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100195B (zh) | 一种基于语义分类的ifc模型变更检测方法 | |
JP5306360B2 (ja) | データ記録を一致させるシステムの分析のための方法およびシステム | |
Lin et al. | Semantic classification and hash code accelerated detection of design changes in BIM models | |
CN110442847B (zh) | 基于代码仓库过程管理的代码相似性检测方法及装置 | |
WO2020098315A1 (zh) | 一种信息匹配方法及终端 | |
CN109408385B (zh) | 一种基于缺陷规则和分类反馈的缺陷发现方法 | |
Stephan et al. | Using mutation analysis for a model-clone detector comparison framework | |
CN111984796B (zh) | 一种基于规范知识图谱ifc模型的自动合规性检查方法 | |
CN110991065B (zh) | 一种建筑信息模型中设计变更自动识别方法 | |
CN113176998A (zh) | 基于源选择的跨项目软件缺陷预测方法 | |
Nguyen et al. | A multi-perspective approach to interpreting spatio-semantic changes of large 3D city models in CityGML using a graph database | |
CN114357596B (zh) | 一种bim构件资源快捷设计方法及系统 | |
CN112084302B (zh) | 造价文件的清单数据检测方法、系统、装置及存储介质 | |
Shafiq et al. | Application of signature-based matching for IFC model comparison | |
CN111143432A (zh) | 一种事件处理结果的数据分析预警系统及方法 | |
CN114595262A (zh) | 一种市政道路epc项目招标清单的快速生成方法及系统 | |
CN115577424A (zh) | 一种施工建筑工程量的计算方法、装置、设备及存储介质 | |
Li et al. | A novel approach to remote sensing image retrieval with multi-feature VP-tree indexing and online feature selection | |
US7987203B2 (en) | Method of processing data for a system model | |
CN114358546A (zh) | 一种造价指标收集及分析方法、装置、设备及存储介质 | |
CN109685453B (zh) | 智能识别工作流有效路径的方法 | |
CN112487523B (zh) | 一种bim模型中构件变更的快速检测方法 | |
CN117609868B (zh) | 基于分部分项逻辑的房建类bim数据分类方法、系统及介质 | |
CN111259027A (zh) | 一种数据一致性检测方法 | |
CN114968258B (zh) | 面向代码溯源的克隆代码继承关系判定方法、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |