一种基于IFC的范围性结构树重构方法
文献发布时间:2023-06-19 19:30:30
技术领域
本发明属于建筑业信息技术领域,具体涉及一种基于IFC的范围性结构树重构方法。
背景技术
随着当今社会建筑业的快速发展,对建筑内外立面、以及屋盖建造的外造型有了更高标准和需求,进而导致建筑工程的造型复杂性、生产难度、安装工艺复杂程度、信息追溯等均呈指数型上升趋势,因此多依赖非建筑信息模型建模软件参与模型创建,衍生出数据交换、建筑信息补充的需求。
建筑项目是一项多专业参与的综合性活动,工程项目信息量巨大,随着BIM技术的发展和推行,相关BIM信息体量在迅速增加,而其模型数据来源于不同的软件开发商,项目建设各阶段及各专业依据不同的模型标准,其他软件所处软件环境与BIM软件所处软件环境具有较强高度孤立性,难以进行高效、统一是模型元素信息管理,同时现有的多基于BIM软件构建的结构树,使用效果不佳,不能对信息分类、编码、属性补充,以使得各模型元素信息变得系统化、标准化、规范化,不能进行模型元素信息随时查询定位,进而不利于建筑工程管理及决策,降低了使用者对结构树的体验感。
发明内容
本发明在于提供一种基于IFC的范围性结构树重构方法,通过将处于不同软件环境下的初始模型文件统一转化导出为IFC格式的模型文件,使其拥有统一标准的唯一语义,进而在IFC格式的模型文件基础上,通过再编码的方式,为IFC格式的模型文件中的目标模型元素增加标识编码,使得目标模型元素能够在应用于管理平台或系统的过程中被抓取和解析,并能建立范围性结构树,便于通过管理平台或系统进行相关信息的增删查改,提高计算机操作速度;同时能够在利用管理平台或系统进行可视化展示时,便于直观观察目标模型元素与周边模型元素的空间关系,能够使用户直观感受建筑模型整体外观。
一种基于IFC的范围性结构树重构方法,包括:
S1:获取初始模型文件及其所处软件环境;
S2:基于初始模型文件及其所处软件环境,选取目标模型元素和整体模型元素,并分别转化导出为IFC格式的IFC目标模型文件、IFC整体模型文件;
S3:依据编码体系和属性信息创建标识编码标准,并对IFC目标模型文件中的目标模型元素进行标识编码;
S4:将标识编码后的目标模型元素信息添加至IFC整体模型文件中,并构建范围性结构树;
S5:解析IFC整体模型文件中编码重构的范围性结构树,实现依据范围性结构树定位查询目标模型元素。
通过将处于不同软件环境下的初始模型文件统一转化导出为IFC格式的模型文件,使其拥有统一标准的唯一语义,进而在IFC格式的模型文件基础上,通过再编码的方式,为IFC格式的模型文件中的目标模型元素增加标识编码,使得目标模型元素能够在应用于管理平台或系统的过程中被抓取和解析,并能建立范围性结构树,便于通过管理平台或系统进行相关信息的增删查改,提高计算机操作速度;同时能够在利用管理平台或系统进行可视化展示时,便于直观观察目标模型元素与周边模型元素的空间关系,能够使用户直观感受建筑模型整体外观。
进一步的,所述S1中,初始模型文件所处软件环境包括:
BIM软件环境,其满足Revit、Tekla软件的模型文件格式;
非BIM软件环境,其满足Rhino、SketchUp软件的模型文件格式。
进一步的,所述S2中,
目标模型元素是指删除不在管理范围内的模型元素、仅保留在管理范围内的模型元素;
整体模型元素是指所有模型元素;整体模型元素包括目标模型元素。
进一步的,所述S2中,目标模型元素或整体模型元素转化导出为IFC格式的IFC目标模型文件、IFC整体模型文件的过程具体包括:
S21:当目标模型元素或整体模型元素处于Revit、Tekla的BIM软件环境中时,采用建模软件内置方法,直接导出IFC目标模型文件和IFC整体模型文件;
S22:当目标模型元素或整体模型元素处于Rhino、SketchUp的非BIM软件环境中时,采用xbim开源库,转化导出IFC目标模型文件和IFC整体模型文件;
S221:基于xbim开源库,创建“XbimEditorCredentials”对象,在该对象中记录应用程序和用户配置对象,并使用“IfcStore.Create()”方法构建模型空间;
S222:将“XbimEditorCredentials”对象作为参数,描述模型的应用程序和用户配置信息;
S223:利用“.Instances.New
S224:基于模型项目,选择目标模型构件提取其空间尺寸、位置、材质信息,并结合用户定义的建筑类型图层、类别,分别进行构件创建、以及对应类别的Element元素
创建;
S225:基于创建的构件、以及对应类别的Element元素,采用“SaveAs()”方法保存导出为IFC目标模型文件和IFC整体模型文件。
通过将处于不同软件环境下的初始模型文件转化导出为统一的IFC格式模型文件,使得能够统一化标准操作实现业务需求,提高计算机计算速度。
进一步的,所述S3中,创建标识编码标准、以及对IFC目标模型文件中的模型元素进行标识编码的过程具体包括:
S31:提取目标模型元素的“Globalld”值;
S32:建立统一的、且具有唯一性的标识编码标准;
S33:依据标识编码标准,对目标模型元素进行标识编码、且与目标元素的“Globalld”值一一对应。
通过创建编码标准,用于规范目标模型元素的建筑信息语义描述,便于被用户或计算机解析出对应的建筑信息;同时通过对目标模型元素进行标识编码,使其形成一一对应关系,便于后期增删查改。
进一步的,所述S31中,提取目标模型元素的“Globalld”值的过程具体包括:
S311:采用“IfcStore.Open()”方法,并依据模型文件路径读取IFC目标模型文件;
S312:采用“.Instances.OfType<>”方法过滤出IFC目标模型文件的所有模型实例元素,并依据“Instances.OfType<>”方法提供的IFC目标模型文件的元素类型,构造foreach循环;
S313:采用“.GlobalId.ToString()”方法从所有模型实例元素中分别提取“Globalld”值,并将其转化为字符串。
进一步的,所述S32中,标识编码标准的建立过程中,标识编码具体包括:
工程部位,其包括工程区域描述和工程单位工程;
构件材料;
构件编号;
采用“-”连接标识编码中的各编码字段。
进一步的,所述S4中,将标识编码后的目标模型元素信息添加至IFC整体模型文件前需要对IFC整体模型文件中目标构件构建标识编码属性,构建标识编码属性的过程具体包括:
S411:采用“.Instances.New
S412:采用“.Instances.New
S413:采用ifcmodel.Instances.New
进一步的,所述S4中,构建范围性结构树的过程具体包括:
S421:遍历IFC整体模型文件的文件层级,获取含有“IfcProject”、“IfcSite”、“IfcBuilding”、“IfcBuildingStorey”、以及“Element”元素;
S422:结合标识编码,判别各元素是否存在标识编码;
S421:若判别该元素存在标识编码,加入结构树;
S422:若判别该元素不存在标识编码,不加入结构树;
S423:集合全部含有标识编码的元素,构建形成范围性结构树。
进一步的,所述S5中,实现定位查询目标模型元素的过程具体包括:
S51:依据所需业务需求,在范围性结构树中查询对应的标识编码;
S52:结合标识编码标准对标识编码进行解析,并将解析后的模型元素信息传递至用户;
S53:构造foreach循环,并选取“property.HasProperties.Any()”为true的模型元素;
S54:基于选取的模型元素,依照其标识编码从IFC整体模型文件中查询对应的目标模型元素,实现定位查询目标元素模型。
本发明的有益效果为:
本发明通过将处于不同软件环境下的初始模型文件统一转化导出为IFC格式的模型文件,使其拥有统一标准的唯一语义,进而在IFC格式的模型文件基础上,通过再编码的方式,为IFC格式的模型文件中的目标模型元素增加标识编码,使得目标模型元素能够在应用于管理平台或系统的过程中被抓取和解析,并能建立范围性结构树,便于通过管理平台或系统进行相关信息的增删查改,提高计算机操作速度;同时能够在利用管理平台或系统进行可视化展示时,便于直观观察目标模型元素与周边模型元素的空间关系,能够使用户直观感受建筑模型整体外观;通过对目标模型元素设定标识编码,对IFC目标模型文件中模型元素进行属性补充,并且通过统一编码标准记录建筑关键信息的描述,进一步完成范围性结构树建立,使得在处理业务需求时,可以高效执行业务操作,同时获取目标对象的建筑信息。
附图说明
图1为本发明的流程示意图;
图2为本发明的IFC目标模型文件中在IFC模型查看器下查看Globalld属性的效果示意图;
图3为本发明的IFC整体模型文件中在IFC模型查看器下查看目标模型元素编码及属性的效果示意图。
图4为本发明的具体流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围;对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
实施例1
图1所示的是一种基于IFC的范围性结构树重构方法,通过将处于不同软件环境下的初始模型文件统一转化导出为IFC格式的模型文件,使其拥有统一标准的唯一语义,进而在IFC格式的模型文件基础上,通过再编码的方式,为IFC格式的模型文件中的目标模型元素增加标识编码,使得目标模型元素能够在应用于管理平台或系统的过程中被抓取和解析,并能建立范围性结构树,便于通过管理平台或系统进行相关信息的增删查改,提高计算机操作速度;同时能够在利用管理平台或系统进行可视化展示时,便于直观观察目标模型元素与周边模型元素的空间关系,能够使用户直观感受建筑模型整体外观。具体包括如下步骤:
S1:获取初始模型文件及其所处软件环境;
其中,初始模型文件所处软件环境包括:
BIM软件环境,其满足Revit、Tekla软件的模型文件格式;
非BIM软件环境,其满足Rhino、SketchUp软件的模型文件格式。
S2:基于初始模型文件及其所处软件环境,选取目标模型元素和整体模型元素,并分别转化导出为IFC格式的IFC目标模型文件、IFC整体模型文件;
其中,目标模型元素是指删除不在管理范围内的模型元素、仅保留在管理范围内的模型元素;
整体模型元素是指所有模型元素;整体模型元素包括目标模型元素。
其中,目标模型元素或整体模型元素转化导出为IFC格式的IFC目标模型文件、IFC整体模型文件的过程具体包括:
S21:当目标模型元素或整体模型元素处于Revit、Tekla的BIM软件环境中时,采用建模软件内置方法,直接导出IFC目标模型文件和IFC整体模型文件;
S22:当目标模型元素或整体模型元素处于Rhino、SketchUp的非BIM软件环境中时,采用xbim开源库,转化导出IFC目标模型文件和IFC整体模型文件;
S221:基于xbim开源库,创建“XbimEditorCredentials”对象,在该对象中记录应用程序和用户配置对象,并使用“IfcStore.Create()”方法构建模型空间;
S222:将“XbimEditorCredentials”对象作为参数,描述模型的应用程序和用户配置信息;
S223:利用“.Instances.New
S224:基于模型项目,选择目标模型构件提取其空间尺寸、位置、材质信息,并结合用户定义的建筑类型图层、类别,分别进行构件创建、以及对应类别的Element元素创建;
S225:基于创建的构件、以及对应类别的Element元素,采用“SaveAs()”方法保存导出为IFC目标模型文件和IFC整体模型文件。
通过将处于不同软件环境下的初始模型文件转化导出为统一的IFC格式模型文件,使得能够统一化标准操作实现业务需求,提高计算机计算速度。
S3:依据编码体系和属性信息创建标识编码标准,并对IFC目标模型文件中的目标模型元素进行标识编码;
其中,创建标识编码标准、以及对IFC目标模型文件中的模型元素进行标识编码的过程具体包括:
S31:提取目标模型元素的“Globalld”值;
其中,提取目标模型元素的“Globalld”值的过程具体包括:
S311:采用“IfcStore.Open()”方法,并依据模型文件路径读取IFC目标模型文件;
S312:采用“.Instances.OfType<>”方法过滤出IFC目标模型文件的所有模型实例元素,并依据“.Instances.OfType<>”方法提供的IFC目标模型文件的元素类型,构造foreach循环;
S313:采用“.GlobalId.ToString()”方法从所有模型实例元素中分别提取“Globalld”值,并将其转化为字符串。
图2所示的是查看“Globalld”值效果的示意图。
S32:建立统一的、且具有唯一性的标识编码标准;
其中,标识编码标准的建立过程中,标识编码具体包括:
工程部位,其包括工程区域描述和工程单位工程;
构件材料;
构件编号;
采用“-”连接标识编码中的各编码字段,即为:工程区域描述-工程单位工程-构件材料-构件编号,进而便于用户或计算机进行解读。
S33:依据标识编码标准,对目标模型元素进行标识编码、且与目标元素的“Globalld”值一一对应。
通过创建编码标准,用于规范目标模型元素的建筑信息语义描述,便于被用户或计算机解析出对应的建筑信息;同时通过对目标模型元素进行标识编码,使其形成一一对应关系,便于后期增删查改。
S4:将标识编码后的目标模型元素信息添加至IFC整体模型文件中,并构建范围性结构树;
其中,将标识编码后的目标模型元素信息添加至IFC整体模型文件前需要对IFC整体模型文件中目标构件构建标识编码属性,构建标识编码属性的过程具体包括:
S411:采用“.Instances.New
S412:采用“.Instances.New
S413:采用ifcmodel.Instances.New
图3所示的是查看目标模型元素编码及属性的效果示意图。
其中,构建范围性结构树的过程具体包括:
S421:遍历IFC整体模型文件的文件层级,获取含有“IfcProject”、“IfcSite”、“IfcBuilding”、“IfcBuildingStorey”、以及“Element”元素;
S422:结合标识编码,判别各元素是否存在标识编码;
S421:若判别该元素存在标识编码,加入结构树;
S422:若判别该元素不存在标识编码,不加入结构树;
S423:集合全部含有标识编码的元素,构建形成范围性结构树。
S5:解析IFC整体模型文件中编码重构的范围性结构树,实现依据范围性结构树定位查询目标模型元素。
其中,实现定位查询目标模型元素的过程具体包括:
S51:依据所需业务需求,在范围性结构树中查询对应的标识编码;
S52:结合标识编码标准对标识编码进行解析,并将解析后的模型元素信息传递至用户;
S53:构造foreach循环,并选取“property.HasProperties.Any()”为true的模型元素;
S54:基于选取的模型元素,依照其标识编码从IFC整体模型文件中查询对应的目标模型元素,实现定位查询目标元素模型。
实施例2
如图4所示,本发明提供一种基于IFC的范围性结构树重构方法,具体包括如下步骤:
T1:获取初始模型文件及所处软件环境;
T2:判别是否保留目标模型元素外的模型元素,并分别转化生成IFC格式的模型文件;
T21:当判别保留目标模型元素时,管理目标模型元素,并转化生成IFC目标模型
文件;
T211:提取目标模型元素的“Globalld”值;
T212:建立统一的、且具有唯一性的标识编码标准;
T213:依据标识编码标准,对目标模型元素进行标识编码、且与目标元素的“Globalld”值一一对应。
T22:当判别不保留目标模型元素时,遍历整体模型元素,并转化生成IFC整体模
型文件;
T3:将T213中标识编码后的目标模型元素信息添加至T22中IFC整体模型文件对应的目标构件中,并构建范围性结构树;
T4:依照业务需求,获取建筑信息、以及准确定位执行业务操作。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。