CN114139257A - 一种s3d元件的房间号自动计算的***和方法 - Google Patents

一种s3d元件的房间号自动计算的***和方法 Download PDF

Info

Publication number
CN114139257A
CN114139257A CN202111424421.3A CN202111424421A CN114139257A CN 114139257 A CN114139257 A CN 114139257A CN 202111424421 A CN202111424421 A CN 202111424421A CN 114139257 A CN114139257 A CN 114139257A
Authority
CN
China
Prior art keywords
room
entering
current
obj
info
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.)
Pending
Application number
CN202111424421.3A
Other languages
English (en)
Inventor
沈杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Nuclear Engineering Research and Design Institute Co Ltd
Original Assignee
Shanghai Nuclear Engineering Research and Design Institute Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Nuclear Engineering Research and Design Institute Co Ltd filed Critical Shanghai Nuclear Engineering Research and Design Institute Co Ltd
Priority to CN202111424421.3A priority Critical patent/CN114139257A/zh
Publication of CN114139257A publication Critical patent/CN114139257A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Architecture (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Structural Engineering (AREA)
  • Civil Engineering (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种S3D元件的房间号自动计算的***,包括:房间变化识别模块、元件变化识别模块、房间与元件关联关系计算模块、元件房间号计算模块和报表输出模块,所述房间变化识别模块用于识别S3D模型中所有房间对象的新增、删除以及修改操作。本发明通过在S3D软件中构建空间对象以及使用Design Rule Checker框架进行房间号算法开发,实现了对在S3D项目里布置的所有元件的房间号自动计算,同时对元件以及房间的移动、新增删除都能实现房间号的同步更新,为后续的各种分析计算以及材料统计提供了数据基础,同时支持将房间与元件的关联关系以清单报告形式输出。

Description

一种S3D元件的房间号自动计算的***和方法
技术领域
本发明涉及三维模型元件计算技术领域,具体为一种S3D元件的房间号自动计算的***和方法。
背景技术
S3D(Smart 3D)是一款广泛运用的三维设计软件;S3D软件作为一个集成化的、多专业参与的三维工厂建模软件,能够快速帮助各专业设计人员进行三维建模以及设计检查,大大提高了工作效率和设计质量;在化工及能源行业,S3D软件得到了广泛的应用并且已经有了无数成功的案例;
在传统能源行业布置设计过程中,尤其是核电站的布置设计过程中,空间划分均以房间作为最小单位进行;在整个布置设计过程中,房间号信息不论在设计、采购、建造还是运维过程中都非常重要,因为不论是分析论证阶段的辐射分区计算、水淹分析计算、房间发热量计算还是防火分区计算、房间净容积计算等亦或者是在建造采购阶段的材料统计报表生成,都需要首先知道每个元件的房间号信息从而做到以房间为单位进行统计分析和工作包划分;
默认的S3D设计软件并未提供对应的房间号计算方法,因此为了满足后续各种需求,传统的房间号信息获取方法是由设计人员在设计过程中手动进行填写,不仅需要耗费设计人员大量的劳动力,同时还有填写错误的人因风险以及因为元件挪动造成的更新不及时的风险;因此非常需要一种能够在S3D软件中自动实现元件房间号计算的***和方法。
发明内容
本发明的目的在于提供一种S3D元件的房间号自动计算的***和方法,以解决上述背景技术中提出的对S3D项目里布置的所有元件的房间号自动计算的问题。
为实现上述目的,本发明提供如下技术方案:
一种S3D元件的房间号自动计算的***,包括:房间变化识别模块、元件变化识别模块、房间与元件关联关系计算模块、元件房间号计算模块和报表输出模块,所述房间变化识别模块用于识别S3D模型中所有房间对象的新增、删除以及修改操作;
所述元件变化识别模块用于识别S3D模型中需要进行房间号计算的元件的新增、删除以及修改操作;
所述房间与元件关联关系计算模块用于将房间内部元件与房间通过碰撞关系进行相应的关联关系挂接;
所述元件房间号计算根据房间与元件关联关系对元件的房间号属性进行赋值;
所述报表输出模块能够将元件的房间号计算结果以报表形式输入共后续专业计算分析使用。
一种S3D元件的房间号自动计算的方法,其特征在于,包括以下步骤:
S1,设计人员在S3D项目中绘制和房间外形一致的空间对象用于后续房间号计算;
S2,为需要进行房间号计算的S3D项目安装部署Design Rule Checker运行框架,配置完成对应的过滤器,同时创建房间号计算软件对应的数据库以及用于记录待处理对象的obj表、记录项目房间信息的room表、记录房间和当前内部元件关联关系的room_obj表以及记录从前房间内部存在哪些元件关联关系的room_related表;
S3,通过Design Rule Checker框架,根据用户实际需要开发检查算法,从而获取项目中需要计算房间号的元件对象的新增或者修改情况;
S4,检查是否存在房间号计算软件对应的数据库以及用于记录待处理对象的obj表、记录项目房间信息的room表、记录房间和当前内部元件关联关系的room_obj表以及记录从前房间内部存在哪些元件关联关系的room_related表,如果不存在,则创建对应的数据库以及数据表;
S5,扫描项目内的所有房间对象,通过碰撞检查获取当前房间内部的元件列表形成房间与元件对应关系,存入room_obj表;
S6,将当前项目内部的房间对象与room表中的房间条目进行比较,确认需要进行处理的房间,将与需要处理的房间存在关联关系的元件放入obj表中;
S7,处理obj表中所有对象,更新这些对象的房间号属性并且更新room_related表中对应内容;
S8,导出元件的房间号清单。
优选的,所述S3-S7步骤设置为定时循环执行,循环执行的时间间隔可由用户灵活配置。
优选的,所述S5的扫描项目内的所有房间对象,通过碰撞检查获取当前房间内部的元件列表形成房间与元件对应关系,存入room_obj表,包含以下步骤:
S5.1,查找存在特定目录下的代表房间的空间对象,获取房间集合roomBoc,进入S5.2;
S5.2,循环遍历房间集合内的房间,如果存在尚未遍历的房间,进入S5.3,否则进入S5.12;
S5.3,通过房间的Interference关系获取与当前房间相关的碰撞点集合,进入S5.4;
S5.4,从room_obj表中删除当前房间对应的所有数据条目,进入S5.5;
S5.5,如果当前房间的碰撞点集合存在且数量不为空,进入S5.6,否则返回S5.2;
S5.6,循环遍历碰撞点集合,如果存在尚未遍历的碰撞点集合,进入S5.7,否则返回S5.2;
S5.7,将当前碰撞点的状态设置为可忽略,进入S5.8;
S5.8,获取当前碰撞点通过Interference关系获取的碰撞点对应的碰撞对象集合,进入S5.9;
S5.9,循环遍历碰撞对象集合,如果存在尚未遍历的碰撞对象集合,进入S5.10,否则返回S5.6;
S5.10,如果当前碰撞对象既不是当前房间对象又不是房间对象类型的对象,进入S5.11,否则返回S5.9;
S5.11,将碰撞对象以及当前房间的oid存入room_obj表形成关联关系条目,返回S5.9;
S5.12,结束。
优选的,所述S6的将当前项目内部的房间对象与room表中的房间条目进行比较,确认需要进行处理的房间,将与需要处理的房间存在关联关系的元件放入obj表中包含以下步骤:
S6.1,通过查找模型里存在特定目录下的代表房间的空间对象,获取房间集合roomBoc,进入S6.2;
S6.2,循环遍历房间集合内的房间,如果存在尚未遍历的房间,进入S6.3,否则进入S6.25;
S6.3,从房间信息表room_info中查找是否有对应的房间信息,如果没有代表是新增房间,进入S6.4,否则进入S6.10;
S6.4,将当前房间信息***room_info包括房间名称和最后修改时间,其中当前房间的isIFC标志位置为假,进入S6.5;
S6.5,查找room_obj表中是否存在当前房间的相关内容,如果存在进入S6.6,否则进入S6.7;
S6.6,将这些条目关联的元件对象都***到obj表中,并且将room_info表中的房间条目对应的isIFC设置为真,返回S6.2;
S6.7,查看当前房间的最终修改时间与当前时间相比是否已经过去一个小时,如果是进入S6.8,否则进入S6.9;
S6.8,当前房间并无与任何对象发生碰撞,代表当前房间内无任何元件,更新room_info表中房间的isIFC属性为真,返回S6.2;
S6.9,当前房间对应的碰撞检查可能尚未完成,更新room_info表中房间的isIFC属性为假,返回S6.2;
S6.10,处理依然存在的房间对象,查看room_info中房间的最后修改时间和当前房间的最后修改时间是否一致,如果不一致,进入S6.11,否则进入S6.16;
S6.11,从room_obj中找到和当前room相关的所有条目,如果条目数量不为零且条目中对应的修改时间中最早的一条都比当前房间的最后修改时间要晚,进入S6.12,否则进入S6.15;
S6.12,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.13;
S6.13,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.14;
S6.14,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.15,更新room_info表中当前房间条目的isIFC为假,同时把最后修改时间更新为当前房间的最后修改时间,返回S6.2;
S6.16,判断当前房间的isIFC是否为假,如果为假则进入S6.17,否则返回S6.2;
S6.17,从room_obj中找到和当前room相关的所有条目,如果条目数量不为零且条目中对应的修改时间中最早的一条都比当前房间的最后修改时间要晚,进入S6.18,否则进入S6.21;
S6.18,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.19;
S6.19,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.20;
S6.20,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.21,判断当前房间的最终修改时间是否和当前时间相差一个小时以上,如果已经超过一个小时,进入S6.22,否则返回S6.2;
S6.22,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.23;
S6.23,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.24;
S6.24,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.25,找到存在于room_info表中但实际模型中已经不存在的房间条目,这些房间为已经删除的房间,如果存在这样的房间集合,进入S6.26,否则进入S6.28;
S6.26,从room_related表中所有删除房间关联的数据条目对应的元件,将这些元件相关信息都放入obj表中,进入S6.27;
S6.27,从room_info表中删除对应已删除房间的相关条目,同时从room_related表中删除对应已删除房间的相关条目,进入S6.28;
S6.28,结束。
优选的,所述S7的处理obj表中所有对象,更新这些对象的房间号属性并且更新room_related表中对应内容包含以下步骤:
S7.1,获取obj_info表中所有数据条目,如果没有数据条目,进入S7.12,否则进入S7.2;
S7.2,建立待处理元件对象集合objCollection,循环遍历obj_info中数据条目,如果存在尚未遍历的数据条目,进入S7.3,否则进入S7.4;
S7.3,根据当前条目的oid去项目中建立过滤器查找obj对象,如果找到对应的obj对象,将其放入objCollection,同时删除obj_info中对应的数据条目,返回S7.2;
S7.4,循环遍历objCollection,如果存在尚未遍历的元件对象,进入S7.5,否则进入S7.12;
S7.5,从room_obj表中寻找当前元件对应的数据条目集合,如果数据条目集合的数量大于0并且当前条目的最后修改时间字段的值晚于当前元件的最后修改时间,进入S7.6,否则进入S7.11;
S7.6,设置roomNumber变量记录元件的房间号,进入S7.7;
S7.7,循环遍历S7.5获取的数据条目集合,如果存在尚未遍历的数据条目,进入S7.8,否则进入S7.10;
S7.8,如果room_related表中当前数据条目对应的元件和房间关系,将该元件和房间的对应关系***room_related表中,进入S7.9;
S7.9,从room_info表中找到当前数据条目中room_oid对应的房间名称,写入roomNumber,返回S7.7;
S7.10,更新当前元件的房间号属性为roomNumber,删除obj_info中和当前元件oid相同的数据条目,返回S7.4;
S7.11,如果当前元件的最终修改时间和当前时间相比已经超过一个小时,进入S7.6,否则返回S7.4;
S7.12,结束。
与现有技术相比,本发明的有益效果是:
1、本发明提供的S3D元件房间号自动计算的***和方法,提供了一种自动计算元件的房间号信息的手段,免去了设计人员手动填写房间号信息的大量工作,同时保证了房间号信息的准确性,免去了人因误差,大幅提升了工作效率和模型质量;
2、本发明提供的S3D元件房间号自动计算的***和方法,能够根据用户的实际需要调整自动计算的时间间隔,最大限度保证房间号计算结果的实时性;
3、本发明提供的S3D元件房间号自动计算的***和方法,通过使用Design RuleChecker框架来捕获产生变化的元件以及比较房间的增删改情况,实现房间号计算工作的增量式更新,大幅降低计算工作量,从而保证计算速度以及计算结果的实时性;
4、本发明提供的S3D元件房间号自动计算的***和方法,能够灵活配置需要进行房间号计算的对象类型,因此本方法能够适用于所有需要计算房间号的场合,具有通用性;
5、本发明提供的S3D元件房间号自动计算的***和方法,支持将最终元件的房间号信息以报表形式输出,方便后续专业进行使用。
附图说明
图1为本发明优选实施例的S3D元件房间号自动计算***的结构示意图;
图2为本发明优选实施例的S3D元件房间号自动计算的实现方法流程图;
图3为本发明优选实施例的分析房间以及房间内部元件关联关系的流程示意图;
图4为本发明优选实施例的更新元件房间号属性以及元件与房间关联关系的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-4,本发明提供一种技术方案:一种S3D元件的房间号自动计算的***,如图一所示,包括:房间变化识别模块、元件变化识别模块、房间与元件关联关系计算模块、元件房间号计算模块和报表输出模块,房间变化识别模块用于识别S3D模型中所有房间对象的新增、删除以及修改操作;
元件变化识别模块用于识别S3D模型中需要进行房间号计算的元件的新增、删除以及修改操作;
房间与元件关联关系计算模块用于将房间内部元件与房间通过碰撞关系进行相应的关联关系挂接;
元件房间号计算根据房间与元件关联关系对元件的房间号属性进行赋值;
报表输出模块能够将元件的房间号计算结果以报表形式输入共后续专业计算分析使用;
一种S3D元件的房间号自动计算的方法,如图二所示,包括以下步骤:
S1,设计人员在S3D项目中绘制和房间外形一致的空间对象用于后续房间号计算;
S2,为需要进行房间号计算的S3D项目安装部署Design Rule Checker运行框架,配置完成对应的过滤器,同时创建房间号计算软件对应的数据库以及用于记录待处理对象的obj表、记录项目房间信息的room表、记录房间和当前内部元件关联关系的room_obj表以及记录从前房间内部存在哪些元件关联关系的room_related表;
S3,通过Design Rule Checker框架,根据用户实际需要开发检查算法,从而获取项目中需要计算房间号的元件对象的新增或者修改情况;
S4,检查是否存在房间号计算软件对应的数据库以及用于记录待处理对象的obj表、记录项目房间信息的room表、记录房间和当前内部元件关联关系的room_obj表以及记录从前房间内部存在哪些元件关联关系的room_related表,如果不存在,则创建对应的数据库以及数据表;
S5,扫描项目内的所有房间对象,通过碰撞检查获取当前房间内部的元件列表形成房间与元件对应关系,存入room_obj表;
S6,将当前项目内部的房间对象与room表中的房间条目进行比较,确认需要进行处理的房间,将与需要处理的房间存在关联关系的元件放入obj表中;
S7,处理obj表中所有对象,更新这些对象的房间号属性并且更新room_related表中对应内容;
S8,导出元件的房间号清单;
其中,S3-S7步骤设置为定时循环执行,循环执行的时间间隔可由用户灵活配置;
优选地,S5的扫描项目内的所有房间对象,通过碰撞检查获取当前房间内部的元件列表形成房间与元件对应关系,存入room_obj表,包含以下步骤:
S5.1,查找存在特定目录下的代表房间的空间对象,获取房间集合roomBoc,进入S5.2;
S5.2,循环遍历房间集合内的房间,如果存在尚未遍历的房间,进入S5.3,否则进入S5.12;
S5.3,通过房间的Interference关系获取与当前房间相关的碰撞点集合,进入S5.4;
S5.4,从room_obj表中删除当前房间对应的所有数据条目,进入S5.5;
S5.5,如果当前房间的碰撞点集合存在且数量不为空,进入S5.6,否则返回S5.2;
S5.6,循环遍历碰撞点集合,如果存在尚未遍历的碰撞点集合,进入S5.7,否则返回S5.2;
S5.7,将当前碰撞点的状态设置为可忽略,进入S5.8;
S5.8,获取当前碰撞点通过Interference关系获取的碰撞点对应的碰撞对象集合,进入S5.9;
S5.9,循环遍历碰撞对象集合,如果存在尚未遍历的碰撞对象集合,进入S5.10,否则返回S5.6;
S5.10,如果当前碰撞对象既不是当前房间对象又不是房间对象类型的对象,进入S5.11,否则返回S5.9;
S5.11,将碰撞对象以及当前房间的oid存入room_obj表形成关联关系条目,返回S5.9;
S5.12,结束;
7.优选的,S6的将当前项目内部的房间对象与room表中的房间条目进行比较,确认需要进行处理的房间,将与需要处理的房间存在关联关系的元件放入obj表中包含以下步骤:
S6.1,通过查找模型里存在特定目录下的代表房间的空间对象,获取房间集合roomBoc,进入S6.2;
S6.2,循环遍历房间集合内的房间,如果存在尚未遍历的房间,进入S6.3,否则进入S6.25;
S6.3,从房间信息表room_info中查找是否有对应的房间信息,如果没有代表是新增房间,进入S6.4,否则进入S6.10;
S6.4,将当前房间信息***room_info包括房间名称和最后修改时间,其中当前房间的isIFC标志位置为假,进入S6.5;
S6.5,查找room_obj表中是否存在当前房间的相关内容,如果存在进入S6.6,否则进入S6.7;
S6.6,将这些条目关联的元件对象都***到obj表中,并且将room_info表中的房间条目对应的isIFC设置为真,返回S6.2;
S6.7,查看当前房间的最终修改时间与当前时间相比是否已经过去一个小时,如果是进入S6.8,否则进入S6.9;
S6.8,当前房间并无与任何对象发生碰撞,代表当前房间内无任何元件,更新room_info表中房间的isIFC属性为真,返回S6.2;
S6.9,当前房间对应的碰撞检查可能尚未完成,更新room_info表中房间的isIFC属性为假,返回S6.2;
S6.10,处理依然存在的房间对象,查看room_info中房间的最后修改时间和当前房间的最后修改时间是否一致,如果不一致,进入S6.11,否则进入S6.16;
S6.11,从room_obj中找到和当前room相关的所有条目,如果条目数量不为零且条目中对应的修改时间中最早的一条都比当前房间的最后修改时间要晚,进入S6.12,否则进入S6.15;
S6.12,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.13;
S6.13,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.14;
S6.14,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.15,更新room_info表中当前房间条目的isIFC为假,同时把最后修改时间更新为当前房间的最后修改时间,返回S6.2;
S6.16,判断当前房间的isIFC是否为假,如果为假则进入S6.17,否则返回S6.2;
S6.17,从room_obj中找到和当前room相关的所有条目,如果条目数量不为零且条目中对应的修改时间中最早的一条都比当前房间的最后修改时间要晚,进入S6.18,否则进入S6.21;
S6.18,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.19;
S6.19,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.20;
S6.20,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.21,判断当前房间的最终修改时间是否和当前时间相差一个小时以上,如果已经超过一个小时,进入S6.22,否则返回S6.2;
S6.22,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.23;
S6.23,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.24;
S6.24,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.25,找到存在于room_info表中但实际模型中已经不存在的房间条目,这些房间为已经删除的房间,如果存在这样的房间集合,进入S6.26,否则进入S6.28;
S6.26,从room_related表中所有删除房间关联的数据条目对应的元件,将这些元件相关信息都放入obj表中,进入S6.27;
S6.27,从room_info表中删除对应已删除房间的相关条目,同时从room_related表中删除对应已删除房间的相关条目,进入S6.28;
S6.28,结束;
8.优选地,S7的处理obj表中所有对象,更新这些对象的房间号属性并且更新room_related表中对应内容包含以下步骤:
S7.1,获取obj_info表中所有数据条目,如果没有数据条目,进入S7.12,否则进入S7.2;
S7.2,建立待处理元件对象集合objCollection,循环遍历obj_info中数据条目,如果存在尚未遍历的数据条目,进入S7.3,否则进入S7.4;
S7.3,根据当前条目的oid去项目中建立过滤器查找obj对象,如果找到对应的obj对象,将其放入objCollection,同时删除obj_info中对应的数据条目,返回S7.2;
S7.4,循环遍历objCollection,如果存在尚未遍历的元件对象,进入S7.5,否则进入S7.12;
S7.5,从room_obj表中寻找当前元件对应的数据条目集合,如果数据条目集合的数量大于0并且当前条目的最后修改时间字段的值晚于当前元件的最后修改时间,进入S7.6,否则进入S7.11;
S7.6,设置roomNumber变量记录元件的房间号,进入S7.7;
S7.7,循环遍历S7.5获取的数据条目集合,如果存在尚未遍历的数据条目,进入S7.8,否则进入S7.10;
S7.8,如果room_related表中当前数据条目对应的元件和房间关系,将该元件和房间的对应关系***room_related表中,进入S7.9;
S7.9,从room_info表中找到当前数据条目中room_oid对应的房间名称,写入roomNumber,返回S7.7;
S7.10,更新当前元件的房间号属性为roomNumber,删除obj_info中和当前元件oid相同的数据条目,返回S7.4;
S7.11,如果当前元件的最终修改时间和当前时间相比已经超过一个小时,进入S7.6,否则返回S7.4;
S7.12,结束。
本发明通过在S3D软件中构建空间对象以及使用Design Rule Checker框架进行房间号算法开发,实现了对在S3D项目里布置的所有元件的房间号自动计算,同时对元件以及房间的移动、新增删除都能实现房间号的同步更新,为后续的各种分析计算以及材料统计提供了数据基础,同时支持将房间与元件的关联关系以清单报告形式输出。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (6)

1.一种S3D元件的房间号自动计算的***,包括:房间变化识别模块、元件变化识别模块、房间与元件关联关系计算模块、元件房间号计算模块和报表输出模块,其特征在于,所述房间变化识别模块用于识别S3D模型中所有房间对象的新增、删除以及修改操作;
所述元件变化识别模块用于识别S3D模型中需要进行房间号计算的元件的新增、删除以及修改操作;
所述房间与元件关联关系计算模块用于将房间内部元件与房间通过碰撞关系进行相应的关联关系挂接;
所述元件房间号计算根据房间与元件关联关系对元件的房间号属性进行赋值;
所述报表输出模块能够将元件的房间号计算结果以报表形式输入共后续专业计算分析使用。
2.一种S3D元件的房间号自动计算的方法,其特征在于,包括以下步骤:
S1,设计人员在S3D项目中绘制和房间外形一致的空间对象用于后续房间号计算;
S2,为需要进行房间号计算的S3D项目安装部署Design Rule Checker运行框架,配置完成对应的过滤器,同时创建房间号计算软件对应的数据库以及用于记录待处理对象的obj表、记录项目房间信息的room表、记录房间和当前内部元件关联关系的room_obj表以及记录从前房间内部存在哪些元件关联关系的room_related表;
S3,通过Design Rule Checker框架,根据用户实际需要开发检查算法,从而获取项目中需要计算房间号的元件对象的新增或者修改情况;
S4,检查是否存在房间号计算软件对应的数据库以及用于记录待处理对象的obj表、记录项目房间信息的room表、记录房间和当前内部元件关联关系的room_obj表以及记录从前房间内部存在哪些元件关联关系的room_related表,如果不存在,则创建对应的数据库以及数据表;
S5,扫描项目内的所有房间对象,通过碰撞检查获取当前房间内部的元件列表形成房间与元件对应关系,存入room_obj表;
S6,将当前项目内部的房间对象与room表中的房间条目进行比较,确认需要进行处理的房间,将与需要处理的房间存在关联关系的元件放入obj表中;
S7,处理obj表中所有对象,更新这些对象的房间号属性并且更新room_related表中对应内容;
S8,导出元件的房间号清单。
3.根据权利要求2所述的一种S3D元件的房间号自动计算的方法,其特征在于,所述S3-S7步骤设置为定时循环执行,循环执行的时间间隔可由用户灵活配置。
4.根据权利要求2所述的一种S3D元件的房间号自动计算的方法,其特征在于,所述S5的扫描项目内的所有房间对象,通过碰撞检查获取当前房间内部的元件列表形成房间与元件对应关系,存入room_obj表,包含以下步骤:
S5.1,查找存在特定目录下的代表房间的空间对象,获取房间集合roomBoc,进入S5.2;
S5.2,循环遍历房间集合内的房间,如果存在尚未遍历的房间,进入S5.3,否则进入S5.12;
S5.3,通过房间的Interference关系获取与当前房间相关的碰撞点集合,进入S5.4;
S5.4,从room_obj表中删除当前房间对应的所有数据条目,进入S5.5;
S5.5,如果当前房间的碰撞点集合存在且数量不为空,进入S5.6,否则返回S5.2;
S5.6,循环遍历碰撞点集合,如果存在尚未遍历的碰撞点集合,进入S5.7,否则返回S5.2;
S5.7,将当前碰撞点的状态设置为可忽略,进入S5.8;
S5.8,获取当前碰撞点通过Interference关系获取的碰撞点对应的碰撞对象集合,进入S5.9;
S5.9,循环遍历碰撞对象集合,如果存在尚未遍历的碰撞对象集合,进入S5.10,否则返回S5.6;
S5.10,如果当前碰撞对象既不是当前房间对象又不是房间对象类型的对象,进入S5.11,否则返回S5.9;
S5.11,将碰撞对象以及当前房间的oid存入room_obj表形成关联关系条目,返回S5.9;
S5.12,结束。
5.根据权利要求2所述的一种S3D元件的房间号自动计算的方法,其特征在于,所述S6的将当前项目内部的房间对象与room表中的房间条目进行比较,确认需要进行处理的房间,将与需要处理的房间存在关联关系的元件放入obj表中包含以下步骤:
S6.1,通过查找模型里存在特定目录下的代表房间的空间对象,获取房间集合roomBoc,进入S6.2;
S6.2,循环遍历房间集合内的房间,如果存在尚未遍历的房间,进入S6.3,否则进入S6.25;
S6.3,从房间信息表room_info中查找是否有对应的房间信息,如果没有代表是新增房间,进入S6.4,否则进入S6.10;
S6.4,将当前房间信息***room_info包括房间名称和最后修改时间,其中当前房间的isIFC标志位置为假,进入S6.5;
S6.5,查找room_obj表中是否存在当前房间的相关内容,如果存在进入S6.6,否则进入S6.7;
S6.6,将这些条目关联的元件对象都***到obj表中,并且将room_info表中的房间条目对应的isIFC设置为真,返回S6.2;
S6.7,查看当前房间的最终修改时间与当前时间相比是否已经过去一个小时,如果是进入S6.8,否则进入S6.9;
S6.8,当前房间并无与任何对象发生碰撞,代表当前房间内无任何元件,更新room_info表中房间的isIFC属性为真,返回S6.2;
S6.9,当前房间对应的碰撞检查可能尚未完成,更新room_info表中房间的isIFC属性为假,返回S6.2;
S6.10,处理依然存在的房间对象,查看room_info中房间的最后修改时间和当前房间的最后修改时间是否一致,如果不一致,进入S6.11,否则进入S6.16;
S6.11,从room_obj中找到和当前room相关的所有条目,如果条目数量不为零且条目中对应的修改时间中最早的一条都比当前房间的最后修改时间要晚,进入S6.12,否则进入S6.15;
S6.12,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.13;
S6.13,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.14;
S6.14,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.15,更新room_info表中当前房间条目的isIFC为假,同时把最后修改时间更新为当前房间的最后修改时间,返回S6.2;
S6.16,判断当前房间的isIFC是否为假,如果为假则进入S6.17,否则返回S6.2;
S6.17,从room_obj中找到和当前room相关的所有条目,如果条目数量不为零且条目中对应的修改时间中最早的一条都比当前房间的最后修改时间要晚,进入S6.18,否则进入S6.21;
S6.18,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.19;
S6.19,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.20;
S6.20,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.21,判断当前房间的最终修改时间是否和当前时间相差一个小时以上,如果已经超过一个小时,进入S6.22,否则返回S6.2;
S6.22,将room_info中对应当前房间的isIFC设置为真,更新房间名称以及房间的最后修改时间,进入S6.23;
S6.23,从room_related表中找到和当前房间相关的所有元件对象***obj表中,清空room_related表中和当前房间相关的所有条目,进入S6.24;
S6.24,把room_obj表中和当前房间相关的所有元件都***obj表中,返回S6.2;
S6.25,找到存在于room_info表中但实际模型中已经不存在的房间条目,这些房间为已经删除的房间,如果存在这样的房间集合,进入S6.26,否则进入S6.28;
S6.26,从room_related表中所有删除房间关联的数据条目对应的元件,将这些元件相关信息都放入obj表中,进入S6.27;
S6.27,从room_info表中删除对应已删除房间的相关条目,同时从room_related表中删除对应已删除房间的相关条目,进入S6.28;
S6.28,结束。
6.根据权利要求2所述的一种S3D元件的房间号自动计算的方法,其特征在于,所述S7的处理obj表中所有对象,更新这些对象的房间号属性并且更新room_related表中对应内容包含以下步骤:
S7.1,获取obj_info表中所有数据条目,如果没有数据条目,进入S7.12,否则进入S7.2;
S7.2,建立待处理元件对象集合objCollection,循环遍历obj_info中数据条目,如果存在尚未遍历的数据条目,进入S7.3,否则进入S7.4;
S7.3,根据当前条目的oid去项目中建立过滤器查找obj对象,如果找到对应的obj对象,将其放入objCollection,同时删除obj_info中对应的数据条目,返回S7.2;
S7.4,循环遍历objCollection,如果存在尚未遍历的元件对象,进入S7.5,否则进入S7.12;
S7.5,从room_obj表中寻找当前元件对应的数据条目集合,如果数据条目集合的数量大于0并且当前条目的最后修改时间字段的值晚于当前元件的最后修改时间,进入S7.6,否则进入S7.11;
S7.6,设置roomNumber变量记录元件的房间号,进入S7.7;
S7.7,循环遍历S7.5获取的数据条目集合,如果存在尚未遍历的数据条目,进入S7.8,否则进入S7.10;
S7.8,如果room_related表中当前数据条目对应的元件和房间关系,将该元件和房间的对应关系***room_related表中,进入S7.9;
S7.9,从room_info表中找到当前数据条目中room_oid对应的房间名称,写入roomNumber,返回S7.7;
S7.10,更新当前元件的房间号属性为roomNumber,删除obj_info中和当前元件oid相同的数据条目,返回S7.4;
S7.11,如果当前元件的最终修改时间和当前时间相比已经超过一个小时,进入S7.6,否则返回S7.4;
S7.12,结束。
CN202111424421.3A 2021-11-26 2021-11-26 一种s3d元件的房间号自动计算的***和方法 Pending CN114139257A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111424421.3A CN114139257A (zh) 2021-11-26 2021-11-26 一种s3d元件的房间号自动计算的***和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111424421.3A CN114139257A (zh) 2021-11-26 2021-11-26 一种s3d元件的房间号自动计算的***和方法

Publications (1)

Publication Number Publication Date
CN114139257A true CN114139257A (zh) 2022-03-04

Family

ID=80388647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111424421.3A Pending CN114139257A (zh) 2021-11-26 2021-11-26 一种s3d元件的房间号自动计算的***和方法

Country Status (1)

Country Link
CN (1) CN114139257A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038882A1 (en) * 2003-08-13 2005-02-17 Huscher Anthony A. Automated eRoom archive tool and method
TW200926033A (en) * 2007-07-18 2009-06-16 Steven Kays Adaptive electronic design
CN110109999A (zh) * 2019-05-24 2019-08-09 上海核工程研究设计院有限公司 一种S3D三维模型转Flowmaster模型的***和转换方法
CN112182871A (zh) * 2020-09-23 2021-01-05 上海核工程研究设计院有限公司 一种三维管道模型转换为MapGIS模型的***和方法
CN112948911A (zh) * 2021-01-06 2021-06-11 上海核工程研究设计院有限公司 一种S3D桥架模型转MapGIS模型的***和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038882A1 (en) * 2003-08-13 2005-02-17 Huscher Anthony A. Automated eRoom archive tool and method
TW200926033A (en) * 2007-07-18 2009-06-16 Steven Kays Adaptive electronic design
CN110109999A (zh) * 2019-05-24 2019-08-09 上海核工程研究设计院有限公司 一种S3D三维模型转Flowmaster模型的***和转换方法
CN112182871A (zh) * 2020-09-23 2021-01-05 上海核工程研究设计院有限公司 一种三维管道模型转换为MapGIS模型的***和方法
CN112948911A (zh) * 2021-01-06 2021-06-11 上海核工程研究设计院有限公司 一种S3D桥架模型转MapGIS模型的***和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
裴永刚, 路通, 苏丰, 蔡士杰: "工程算量中房间的自动划分方法", 南京师范大学学报(工程技术版), no. 03, 20 September 2005 (2005-09-20) *

Similar Documents

Publication Publication Date Title
CN110941871B (zh) 一种基于Revit三维模型中房间信息的自动标注方法及***
CN110765523A (zh) 一种基于bim技术的深基坑围护结构快速构建方法
EP3451206B1 (en) Method, apparatus, and device for generating a visual model layout of a space
CN110232235B (zh) 基于三维模型的关系型数据处理方法、装置和电子设备
CN102567565B (zh) 一种电缆参数的处理方法和***
CN112685011B (zh) 一种基于Vue的AI应用可视化编排方法
CN113485160A (zh) 一种基于图形匹配识别的仿真建模方法及装置
CN112149211B (zh) 一种基于bim模型的幕墙的建模方法及***
CN107862133B (zh) 一种批量生成桥墩bim模型的方法
US20070150243A1 (en) Apparatus and method for preparing data to generate simulation model, and program thereof
CN108959391B (zh) 展现数据库集群架构图的设备、***、方法、存储介质
JP3224375B2 (ja) 板金モデルの成形形状認識方法及びその装置並びに板金モデルの成形形状認識方法のプログラムを記憶した記憶媒体
CN106919762B (zh) 一种有限元网格阵列建模方法
CN114139257A (zh) 一种s3d元件的房间号自动计算的***和方法
CN112732237A (zh) 一种无代码开发技术模型构建的方法及***
CN112365944A (zh) 一种树状数据节点处理***、方法、电子设备及存储介质
CN111460244A (zh) 智能建筑bim模型的制作方法、***、介质及制作设备
US10055811B2 (en) System and method for generating interactive 2D projection of 3D model
CN115829925A (zh) 外观缺陷检测方法、装置、计算机设备及存储介质
CN114398694A (zh) 一种基于Dynamo程序实现建筑信息模型快速创建的方法
CN111985015A (zh) 一种使用vba功能自动生成bom的***及方法
CN116310193B (zh) 一种基于bim的土方开挖施工控制***
US20210373536A1 (en) Building And Tracking Of An Automation Engineering Environment
CN114491704A (zh) 一种基于绘图软件的可以快速生成幕墙节点的方法
KR101662765B1 (ko) 무결성 피드백 시스템 및 그 무결성 피드백 시스템의 정보 처리 방법

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: No. 29 Hong Cao Road, Xuhui District, Shanghai

Applicant after: Shanghai Nuclear Engineering Research and Design Institute Co.,Ltd.

Address before: No. 29 Hong Cao Road, Xuhui District, Shanghai

Applicant before: SHANGHAI NUCLEAR ENGINEERING RESEARCH & DESIGN INSTITUTE Co.,Ltd.