一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

装配式变电站结构IFC转GIM的预处理方法和系统与流程

2022-05-27 01:18:35 来源:中国专利 TAG:

装配式变电站结构ifc转gim的预处理方法和系统
技术领域
1.本发明涉及变电站工程技术领域,具体地,涉及一种的装配式变电站工程结构专业三维设计ifc文件转换为gim文件预处理的方法,尤其涉及一种装配式变电站结构ifc转gim的预处理方法和系统。


背景技术:

2.国家电网公司为了存储变电站三维设计模型提出了gim文件格式,目前gim是一个压缩包,其中包含cbm、dev、phm、mod、stl、fam以及ifc格式的文件,装配式变电站的结构bim三维设计一般导出ifc格式,这样在解析gim文件时,通常需要引用ifc文件的解析器。因为ifc格式的解析器比较复杂,而且在一些特定情况下,比如某些面向运维检修的装置级程序只有面向dev、phm、mod、fam的解析程序,其中可能不包含ifc的文件解析器,这时能够将ifc文件转化为dev、phm、mod、fam,以便在所述的装置级程序中能够查阅与分析变电站结构工程的设计信息就显得尤为重要。
3.公开号为cn109783886a的发明专利,公开了一种用于gim模型与ifc模型的融合系统和方法,分别读取电网工程模型中的gim模型文件、ifc模型文件,进行完整性检查;分别对gim模型文件、ifc模型文件进行文件解析,得到解析结果以json或xml文件形式存储;分别将gim模型、ifc模型的描述方案与统一参考模型的描述方案建立映射关系并转换后以json或xml文件形式存储;通过分析统一参考模型中的几何数据,生成多种空间关系;基于多种空间关系,将gim转换结果和ifc转换结果进行差异对比,得到版本差异结果。


技术实现要素:

4.针对现有技术中的缺陷,本发明提供一种装配式变电站结构ifc转gim的预处理方法和系统。
5.根据本发明提供的一种装配式变电站结构ifc转gim的预处理方法和系统,所述方案如下:
6.第一方面,提供了一种装配式变电站结构ifc转gim的预处理方法,所述方法包括:
7.步骤s1:读入结构设计的ifc文件,找出ifcbuildingelement的各个ifc子类的实体;
8.步骤s2:将不同类型的结构构件ifc类型装换为相同ifc构件类型ifcbuildingelementproxy,进行第一项预处理;
9.步骤s3:将ifc中的csg图元类型转换为拉伸体图元类型ifcextrudedareasolid,进行ifc文件的第二项预处理;
10.步骤s4:将得到的ifcextrudedareasolid实体转换为mod文件。
11.优选地,所述步骤s1包括:
12.步骤s1.1:读入ifc文件;在ifc文件的header部分找到描述ifc数据格式版本号的file_schema关键字;
13.步骤s1.2:读入相应的不同ifc版本方案的exp文件,根据相应的版本的exp文件中的express语言定义的数据格式描述方案,验证前面读入的ifc文件的正确性和完整形;
14.若发现问题,写入log文件,提示用户修正ifc文件,不再进入下面的处理步骤;
15.若前面读入的ifc文件的正确性和完整性验证通过,才能进入下面的处理步骤。
16.优选地,所述步骤s2包括:各个结构构件的ifc类的各个参数需要与ifcbuildingelementproxy类的参数进行对齐处理;
17.若在ifc结构类中有而ifcbuildingelementproxy类没有的参数,转换为ifcbuildingelementproxy实体时忽略ifc结构类的参数;
18.若在ifcbuildingelementproxy类有而ifc结构类中没有的参数,进行对齐时,ifcbuildingelementproxy类相应的参数为空缺。
19.优选地,所述步骤s3中:结构构件的ifc三维形体主要包括csg形体以及拉伸体,其中,ifc中的csg形体包括立方体、圆柱、圆锥以及球体在内的相关形体;
20.用到圆柱、圆锥、球体、圆台以及其他异形形体时,将上述形体的表面进行三角化,然后转换为stl文件,存储在gim压缩包中。
21.优选地,所述步骤s4包括:国家电网的.gim文件实质为一个压缩包,其中包含4个文件夹,mod文件夹下只有两类文件,分别是.mod文件和.stl文件,其中.stl文件是以三角化面模型的形式表述异形、非规则的构件。
22.第二方面,提供了一种装配式变电站结构ifc转gim的预处理系统,所述系统包括:
23.模块m1:读入结构设计的ifc文件,找出ifcbuildingelement的各个ifc子类的实体;
24.模块m2:将不同类型的结构构件ifc类型装换为相同ifc构件类型ifcbuildingelementproxy,进行第一项预处理;
25.模块m3:将ifc中的csg图元类型转换为拉伸体图元类型ifcextrudedareasolid,进行ifc文件的第二项预处理;
26.模块m4:将得到的ifcextrudedareasolid实体转换为mod文件。
27.优选地,所述模块m1包括:
28.模块m1.1:读入ifc文件;在ifc文件的header部分找到描述ifc数据格式版本号的file_schema关键字;
29.模块m1.2:读入相应的不同ifc版本方案的exp文件,根据相应的版本的exp文件中的express语言定义的数据格式描述方案,验证前面读入的ifc文件的正确性和完整形;
30.若发现问题,写入log文件,提示用户修正ifc文件,不再进入下面的处理模块;
31.若前面读入的ifc文件的正确性和完整性验证通过,才能进入下面的处理模块。
32.优选地,所述模块m2包括:各个结构构件的ifc类的各个参数需要与ifcbuildingelementproxy类的参数进行对齐处理;
33.若在ifc结构类中有而ifcbuildingelementproxy类没有的参数,转换为ifcbuildingelementproxy实体时忽略ifc结构类的参数;
34.若在ifcbuildingelementproxy类有而ifc结构类中没有的参数,进行对齐时,ifcbuildingelementproxy类相应的参数为空缺。
35.优选地,所述模块m3中:结构构件的ifc三维形体主要包括csg形体以及拉伸体,其
中,ifc中的csg形体包括立方体、圆柱、圆锥以及球体在内的相关形体;
36.用到圆柱、圆锥、球体、圆台以及其他异形形体时,将上述形体的表面进行三角化,然后转换为stl文件,存储在gim压缩包中。
37.优选地,所述模块m4中:国家电网的.gim文件实质为一个压缩包,其中包含4个文件夹,mod文件夹下只有两类文件,分别是.mod文件和.stl文件,其中.stl文件是以三角化面模型的形式表述异形、非规则的构件。
38.与现有技术相比,本发明具有如下的有益效果:
39.1、本发明将不同的结构构件ifc类都转换为相同的ifc类等预处理,可以显著降低后续的由ifc文件转换gim的复杂程度;
40.2、本发明将ifc文件进行转化,能够减少在变电站工程设计信息分享应用过程中的软件开发成本和复杂程度。
附图说明
41.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
42.图1为本发明整体步骤示意图;
43.图2为ifccolumn与ifcbuildingelementproxy的参数对齐示意图;
44.图3为ifccolumn实体转ifcbui ldingelementproxy的例子示意图;
45.图4为ifcblock到ifcextrudedsol id的转换模板示意图。
具体实施方式
46.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
47.本发明实施例提供了一种装配式变电站结构ifc转gim的预处理方法,为了简化后续的转换过程的复杂程度,参照图1所示,该发明包括:
48.步骤s1:读入结构设计的ifc文件,找出ifcbuildingelement的各个ifc子类的实体。
49.该步骤具体包括:
50.步骤s1.1:读入ifc文件;在ifc文件的header部分找到描述ifc数据格式版本号的file_schema关键字;
51.步骤s1.2:读入相应的不同ifc版本方案的exp文件,根据相应的版本的exp文件中的express语言定义的数据格式描述方案,验证前面读入的ifc文件的正确性和完整形;若发现问题,写入log文件,提示用户修正ifc文件,不再进入下面的处理步骤;若前面读入的ifc文件的正确性和完整性验证通过,才能进入下面的处理步骤。
52.步骤s2:将不同类型的结构构件ifc类型装换为相同ifc构件类型ifcbuildingelementproxy,进行第一项预处理。
53.该步骤中,各个结构构件的ifc类的各个参数需要与ifcbuildingelementproxy类
的参数进行对齐处理;若在ifc结构类中有而ifcbuildingelementproxy类没有的参数,转换为ifcbuildingelementproxy实体时忽略ifc结构类的参数;若在ifcbuildingelementproxy类有而ifc结构类中没有的参数,进行对齐时,ifcbuildingelementproxy类相应的参数为空缺。
54.步骤s3:将ifc中的csg图元类型转换为拉伸体图元类型ifcextrudedareasolid,进行ifc文件的第二项预处理。
55.结构构件的ifc三维形体主要包括csg形体以及拉伸体,其中,ifc中的csg形体包括立方体、圆柱、圆锥以及球体在内的相关形体;用到圆柱、圆锥、球体、圆台以及其他异形形体时,将上述形体的表面进行三角化,然后转换为stl文件,存储在gim压缩包中。
56.步骤s4:将得到的ifcextrudedareasolid实体转换为mod文件。国家电网的.gim文件实质为一个压缩包,其中包含4个文件夹,mod文件夹下只有两类文件,分别是.mod文件和.stl文件,其中.stl文件是以三角化面模型的形式表述异形、非规则的构件。
57.接下来,对本发明进行更为具体的说明。
58.一种装配式变电站结构ifc转gim的预处理方法,参照图1所示,该方法具体如下:
59.步骤1:读入ifc文件:
60.首先,装置中的程序读入ifc文件;然后在ifc文件的header部分找到描述ifc数据格式版本号的file_schema关键字,比如file_schema(('ifc2x3'))或者file_schema(('ifc4'))或者file_schema(('ifc4x1')),括号内的诸如ifc2x3表示ifc文件的版本号。接着,读入相应的不同ifc版本的方案(schema)的exp文件,根据相应的版本的exp文件中的express语言定义的数据格式描述方案,验证前面读入的ifc文件的正确性和完整形,如果发现问题,写入log文件,提示用户修正ifc文件,不再进入下面的处理步骤;如果前面读入的ifc文件的正确性和完整性验证通过,才能进入下面的处理步骤。
61.步骤2:将结构构件ifc类型装换为相同ifc构件类型:
62.第一项预处理过程是将不同类型的结构构件ifc类型装换为相同ifc构件类型ifcbuildingelementproxy。装配式变电站通常采用钢结构或者钢筋混凝土结构,其结构构件的ifc类一般会用到ifcbeam(梁)、ifccolumn(柱)、ifcslab(板)、ifcfooting(基础)、ifcpile(桩),在少数情况下也会用到ifcwall(剪力墙),但是在国网bim模型的存储格式gim中用phm文件表示部件或者构件,而phm没有定义不同的构件类型,因此,如果能将前述不同的结构构件ifc类都转换为相同的ifc类可以显著降低后续的文件格式转换复杂程度。
63.前述的ifcbeam(梁)、ifccolumn(柱)、ifcslab(板)、ifcfooting(基础)、ifcpile(桩)具有共同的ifc父类ifcbuildingelement,同时代理构件类型ifcbuildingelementproxy(实质上用于描述其他的构件类型)的父类也是ifcbuildingelement。因此,可以将前述的ifcbeam等结构构件ifc类都转化为ifcbuildingelementproxy。具体的转换细节描述如下。
64.首先,前面所述的各个结构构件的ifc类的各个参数需要与ifcbuildingelementproxy类的参数进行对齐处理。如果在ifc结构类(如ifccolumn)中有而ifcbuildingelementproxy类没有的参数,转换为ifcbuildingelementproxy实体时忽略ifc结构类的参数;如果在ifcbuildingelementproxy类有而ifc结构类中没有的参数,进行对齐时,ifcbuildingelementproxy类相应的参数为空缺(在ifc文件中用$表示)。
65.如图2所示,ifccolumn与ifcbuildingelementproxy的参数进行对齐,如图所示,因为两个ifc类都有8个参数,而且顺序一致,因此对其后的参数一一对应。
66.为了不损失转换后的构件类型信息,需要将原先定义的ifc类型,如ifccolumn添加在转换后的ifcbuildingelementproxy的第8个参数的最后,并且以“|”与tag参数值的字符串进行分隔,具题的转换过程参照图3所示。
67.根据上面的参数对其规则,图3展示了一个编号为#366的ifccolumn类型的结构柱构件实体转换ifcbuildingelementproxy实体的实例。图中的转换结果显示,只有#366构件实体的ifc类从ifccolumn变为ifcbuilidngelementproxy,虽然两者的前7个参数完全一直,但是最后一个“tag”参数做了信息增补,在原来字符串的最后加上了“|ifccolumn”,其中“|”是分隔符,用来表示气候的ifc类型是转换后添加的。从以上转化过程可以看出,虽然ifccolumn实体被转换成了ifcbuildingelementproxy实体,但是其原始的ifc类型被没有丢失,而是保存在tag参数值字符串的最后,用“|”与tag原来的值字符串做分隔,原来的“tag”值“368315”仍旧保留。
68.类似地,其他类型的结构构件的实体(ifcbeam、ifcslab、ifcwall、ifcfooting、ifcpile)都可以参照ifccolumn的处理办法转化为ifcbuildingelementproxy实体。在此不再赘述。
69.步骤3:将csg图元类型转换为拉伸体图元类型:
70.ifc文件的第二项预处理是将csg图元类型转换为拉伸体图元类型ifcextrudedareasolid。
71.装配式变电站设计中常用的结构构件的ifc三维形体主要有csg形体以及拉伸体,ifc中的csg形体包括立方体、圆柱、圆锥、球体等,在装配式变电站中,一般采用立方体,圆柱极少使用,圆锥、球体更少使用,在装配式变电站中主要用来表示基础、桩、楼板等构件;同时,钢结构构件的形体在ifc中经常采用不同截面的拉伸体表示,在装配式变电站中经常采用,特别是h型钢构件使用最多。
72.在少数情况下用到圆柱、圆锥、球体、圆台以及其他异形形体时,可以将上述形体的表面进行三角化,然后转换为stl文件,存储在gim压缩包中。因此在后续的ifc结合体转mod的论述中不再加以考虑。型钢构件在ifc中一般用拉伸体ifcextrudedareasolid表示。因此,下面主要给出描述三维立方体的ifcblock实体转换为三维拉伸体的ifcifcextrudedareasolid实体的方法。
73.在ifc类型的定义中,ifcblock立方体构件和型钢构件ifcextrudedareasolid具有共同的ifc祖先类是ifcgeometricrepresentationitem,如图2中显示,ifcbuilidngelementproxy的第7个参数”representation”表述构件的三维集合形体,该参数的ifc类型是ifcproductrepresentation,ifcproductrepresentation又是ifcgeometricrepresentationitem的祖先类。因此,将ifcblock实体转换为ifcextrudedareasolid实体,并不会影响转换后的结构件类型ifcbuilidngelementproxy实体对三维集合形体的定义和引用。
74.参照图4所示,展示了生成上述将ifcblock实体转换为ifcextrudedsolid实体的转换模板。其中,#[lno]是ifc实体的编号,一般为该实体代码在ifc文件的顺序行号。另外,maxlno是当前待处理ifc文件的最大行号,新生成的ifc代码放在文件的最后。
[0075]
ifcextrudedsolid具有4个参数,第4个参数[zlength]是拉伸的长度,第3个参数#[maxlno 1]定义了拉伸方向,因为ifcdirection((0.,0.,1.))表示沿着z轴的正方向拉伸,即向上拉伸,因此[zlength]对应了立方体的高度,第2个参数#[maxlno 2]定义了三维拉伸体在三维空间如何放置。
[0076]
ifcextrudedareasolid实体的第1个参数#[maxlno 5]定义了一个多边形截面,ifcarbitraryclosedprofiledef用于定义一个封闭多变形截面。截面的外廓由#[maxlno 6]描述的多变形ifccompositecurve实体定义。ifccompositecurve包含#[maxlno 7]到#[maxlno 10]的四条折线封闭围合构成,每个折线段由2个点构成,因为是封闭的多边形,#[maxlno 7]起始顶点和#[maxlno 10]的终止顶点相同,都是##[maxlno 15]。
[0077]
#[maxlno 15]到#[maxlno 18]定义了的截面外廓多边形的四个顶点,此处各个顶点的坐标对应ifcblock的长度[xlength]和宽度[ylength]。
[0078]
根据上述转换模板,列举一个ifcblock实体转换为ifcextrudedareasolid实体的案例,该ifcblock实体用来描述基础300毫米高的放脚。在原始的ifc文件中编号ifcblock实体的代码如下:
[0079]
#7655=ifcblock(1500.,1500.,300.);
[0080]
其中ifcblock后面括号内的三个参数分别表示立方体的长(1500mm)、宽(1500mm)、高(300mm)。转换为ifcextrudedsolid拉伸实体需要多行代码加以表述如下:
[0081]
#7655=ifcextrudedareasolid(#100005,#100002,#100001,300.);
[0082]
#100001=ifcdirection((0.,0.,1.));
[0083]
#100002=ifcaxis2placement3d(#100003,#100001,#100004);
[0084]
#100003=ifccartesianpoint((0.,0.,0.));
[0085]
#100004=ifcdirection((1.,0.,0.));
[0086]
#100005=ifcarbitraryclosedprofiledef(.area.,$,#100006);
[0087]
#100006=ifccompositecurve((#100007,#100008,#100009,#100010),.f.);
[0088]
#100007=ifccompositecurvesegment(.continuous.,.t.,#100011);
[0089]
#100008=ifccompositecurvesegment(.continuous.,.t.,#100012);
[0090]
#100009=ifccompositecurvesegment(.continuous.,.t.,#100013);
[0091]
#100010=ifccompositecurvesegment(.continuous.,.t.,#100014);
[0092]
#100011=ifcpolyline((#100015,#100016));
[0093]
#100012=ifcpolyline((#100016,#100017]));
[0094]
#100013=ifcpolyline((#100017,#100018));
[0095]
#100014=ifcpolyline((#100018,#100015));
[0096]
#100015=ifccartesianpoint((0.,0.));
[0097]
#100016=ifccartesianpoint((0.,1500.));
[0098]
#100017=ifccartesianpoint((1500.,1500.));
[0099]
#100018=ifccartesianpoint((0.,1500.));
[0100]
步骤4:ifcextrudedareasolid实体转换为mod文件:
[0101]
国网的.gim文件实质上是一个压缩包,其中包含4个文件夹,mod文件夹下只有两类文件,分别是.mod文件和.stl文件,后者是以三角化面模型的形式表述异形、非规则的构
件,因为在装配式变电站结构构件中很少用到,因此本专利不再赘述。以下主要分析如何将ifcextrudedareasolid转换为mod文件。
[0102]
mod文件实质上是一个xml文件,上述#7655编号的ifcblock实体转为ifc拉伸体后的再转换为mod的文件如下所示:
[0103][0104]
上述的mod文件名采用ifc文件名”五谷丰变电站结构.ifc”后跟ifc实体的编号命名,因为在一个gim压缩包中,各个ifc文件的名成是唯一的,并且在同一个ifc文件中各个ifc实体的编号也是唯一的,这样可以保证转换后的mod文件名是唯一的。
[0105]
在mod文件中,拉伸体用stretchedbody表示,共有三个参数。第一参数l是拉伸的长度;第二参数normal是拉伸的方向,用(x,y,z)表示;第三个参数三维坐标点的集合,各个点之间用“;”分隔。另外,transformmatrix是一个4*4的变换矩阵,用以描述如何放置三维立体实体,其value参数记录了矩阵的16个元素数据。color表示三维形体显示时的颜色,用red,green,blue,alpha四个参数表述。因为有大量的学术文献和开源代码阐述了如何将ifc的放置坐标系(用多行相关联的代码表示)转化为一个变换矩阵,因此不是本发明阐述的重点,在此不再赘述。
[0106]
因为ifcextrudedsolid中的点是二维平面上的点,只有x和y坐标,因为在gim中拉伸界面默认放置在xoy平面上,因此需要添加z坐标z=0即可。
[0107]
本发明实施例提供了一种装配式变电站结构ifc转gim的预处理方法和系统,首先读入结构设计的ifc文件,然后找出ifcbuildingelement的各个ifc子类(包括ifccolumn、
ifcbeam、ifcslab、ifcfooting、ifcpile等常用结构构件的ifc类)的实体;然后,并行进行两个预处理过程。第一个预处理过程将常用结构构件的ifc类的实体转换为ifcbuildingelementproxy类的实体,并将原来的ifc类型存储在ifcbuildingelementproxy实体的tag参数中;第二个预处理过程是将立方体图形类ifcblock实体转换为ifcextrudedareasolid实体。经过上述的预处理,可以降低后续的由ifc文件转换gim的复杂程度。
[0108]
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0109]
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献