发明内容
针对现有技术的不足之处,本发明提供了一种基于Revit的危大模板支撑构件识别方法、设备,能够根据Revit提供的构件基本几何信息和位置信息,分析出构属于危险性较大的混凝土模板支撑工程。
第一方面,提供了一种基于Revit的危大模板支撑构件识别方法,包括:
根据施工图,建立适用于Revit的建筑物模型;
从建筑物模型中筛选出需要进行模板支撑的混凝土构件的族类型和尺寸标识;
根据获取的族类型筛选出需要模板支撑验算的混凝土构件;
将需要模板支撑验算的混凝土构件拆分为梁合集、板合集及墙柱合集;
对于梁合集,计算其中每个梁构件的线载荷、梁跨度并分析其支模高度,识别出危险性梁构件;
对于板合集,计算其中每个板构件的施工总载荷、板跨度并分析其支模高度,识别出危险性板构件;
对于墙柱合集,对其中墙柱构件的模型进行分割修改,并分析其高度,识别出危险性墙柱构件;
根据上述识别出的危险性模板支撑工程构件进行突出显示。
进一步地,所述从建筑物模型中筛选出需要进行模板支撑的混凝土构件的族类型和尺寸标识,具体包括:
获取建筑物模型Revit文档中所有的混凝土构件模型及参数数据,过滤出全部混凝土构件模型中所包含的类型,形成第一列表;
遍历第一列表,筛选出Revit内建结构族类型及用户自定义结构族类型,成为第二列表;
对于Revit内建结构族类型,按照默认参数寻找结构尺寸标识;对于用户自定义结构族类型,由用户自行输入结构尺寸标识;将结构尺寸标识与第二列表组合形成包含族类型和尺寸标识的第三列表。
进一步地,所述根据获取的族类型筛选出需要模板支撑验算的混凝土构件,具体包括:
根据第三列表构建类别过滤器,对全部混凝土构件模型进行筛选,得到需要进行模板支撑验算的所有混凝土构件。
进一步地,所述将需要模板支撑验算的混凝土构件拆分为梁合集、板合集及墙柱合集,具体包括:
从需要模板支撑验算的混凝土构件中寻找梁构件、板构件、墙柱构件并分别形成列表,得到梁合集、板合集及墙柱合集。
进一步地,所述对于梁合集,计算其中每个梁构件的线载荷、梁跨度并分析其支模高度,识别出危险性梁构件,具体包括:
对于每个梁构件,计算梁构件的线载荷并与线载荷阈值进行比较,将符合条件的梁构件加入危大构件列表或超危大构件列表;
计算梁构件端点之间的距离,得到梁跨度并与跨度阈值进行比较,将符合条件的梁构件加入危大构件列表或超危大构件列表;
获取梁构件的定位线,并获取其特征点;
构建引用相交器,并将特征点作为原点,获得距离原点下方最近的构件的高度,并作为支模高度;当一条梁中存在支模高度不同的情况,取最大值作为支模高度,将支模高度与梁支模高度阈值进行比较,将符合条件的梁构件加入危大构件列表或超危大构件列表。
进一步地,所述对于板合集,计算其中每个板构件的施工总载荷、板跨度并分析其支模高度,识别出危险性板构件,具体包括:
对于每个板构件,计算板构件的施工总载荷并与施工总载荷阈值进行比较,将符合条件的板构件加入危大构件列表或超危大构件列表;
获取板构件底面的所有端点,计算相邻端点之间的距离,取最大值作为板跨度;将板跨度与板跨度阈值进行比较,将符合条件的板构件加入危大构件列表或超危大构件列表;
构建引用相交器,并分别将底面所有特征点作为原点,获得距离原点下方最近的构件及其高度,并将该高度作为支模高度;
根据得到的多个支模高度,将符合条件的板构件加入危大构件列表或超危大构件列表。
进一步地,所述根据得到的多个支模高度,将符合条件的板构件加入危大构件列表或超危大构件列表,具体包括:
若底面所有特征点对应的支模高度均小于第一板支模高度阈值,在该板构件为非危险性较大板构件;
若底面所有特征点的支模高度均大于或等于第一板支模高度阈值,且小于第二板支模高度阈值,则该板构件加入危大构件列表;
若底面所有特征点的支模高度均大于或等于第二板支模高度阈值,则该板构件加入超危大构件列表;
若底面所有特征点的支模高度分布于基于第一板支模高度阈值和第二板支模高度阈值划分成的三个区间中的至少两个区间时,将其中至少一个区间对应的特征点下方所对应的构件的支撑面分别合并向上投影,将原始的板构件拆分为多块新板构件;并分别根据多块新版构件对应的支模高度分布区间将符合条件的新版构件加入危大构件列表或超危大构件列表。
进一步地,所述对于墙柱合集,由于墙柱构件的模型端点不一定是实际端点,需要对墙柱构件的模型进行分割修改,使墙柱构件的模型与实际相同后再分析其支模高度,识别出危险性墙柱构件,具体包括:
A1:获取所有梁构件、板构件的几何信息合集,取其并集得到约束构件几何信息;
A2:获取墙柱构件的几何信息,对墙柱构件的几何信息及约束构件几何信息进行相交运算,得到墙柱构件与梁构件、板构件的交集S1;
A3:计算交集S1的体积V1;若V1=0,则不对墙柱构件进行修改;若V1≠0,则对墙柱构件进行修改:
使用S1对墙柱构件进行剪切,得到两个新墙柱构件S2和S3,将标高较低的新墙柱构件S2与S1求并集得到新墙柱构件S4,将新墙柱构件S3和S4加入到墙柱合集中,重复步骤A2-A3直至无法修改;
A4:获取约束构件几何信息中所有面的合集;
A5:对步骤A3得到的新的墙柱合集获取其定位信息,若为柱构件,则为定位点;若为墙构件,则为定位线;计算其与约束构件几何信息中所有面的合集中所有面距离的最小值L1;
A6:若L1大于柱边距的1/2或墙厚的1/2,则寻找与该位置信息相同的墙柱进行合并延伸;若L1小于或等于柱边距的1/2或墙厚的1/2,则无需延伸;
A7:经过步骤A6修改后的墙柱构件合集,获得各墙柱构件高度,将高度大小与高度阈值进行比较,将符合条件的墙柱构件加入危大构件列表或超危大构件列表。
第二方面,提供了一种电子设备,包括:
存储器,其存储有计算机程序;
处理器,用于执行所述计算机程序实现如上所述的基于Revit的危大模板支撑构件识别方法。
第三方面,提供了一种计算机可读存储介质,其存储有计算机程序,该计算机程序被处理器执行时实现如上所述的基于Revit的危大模板支撑构件识别方法。
本发明提出了一种基于Revit的危大模板支撑构件识别方法、设备,克服了基于Revit无法实现危险性较大的混凝土模板支撑工程分析的问题,能够根据Revit提供的构件基本几何信息和位置信息,通过分别对梁构件、板构件、墙柱构件进行特性分析,识别出危险性模板支撑工程构件并最后在Revit中进行突出显示,从根本上解决Revit未提供针对危大模板支撑识别的困难。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于Revit的危险模板支撑构件识别方法流程图;
图2是本发明实施例提供的一种典型建筑物模型示意图;
图3是本发明实施例提供的存在支模高度不同的情况的梁支模高度判断示意图;
图4是本发明实施例提供的一种典型板构件底面示意图;
图5是本发明实施例提供的一种典型板构件特征点示意图;
图6是本发明实施例提供的板构件下方支撑分析示意图;
图7是本发明实施例提供的板构件拆分示意图;
图8是本发明实施例提供的一种典型的Revit模型墙柱端点与实际端点不符示意图;
图9是本发明实施例提供的一种典型的模型墙柱端点信息示意图;
图10是本发明实施例提供的梁柱节点相交运算示意图;
图11是本发明实施例提供的修改梁柱相交节点示意图;
图12是本发明实施例提供的柱构件最小距离判断示意图;
图13是本发明实施例提供的墙构件最小距离判断示意图;
图14是本发明实施例提供的墙柱延伸示意图;
图15是本发明实施例提供的对危险性模板支撑工程构件进行突出显示示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
实施例1
如图1所示,提供了一种基于Revit的危大模板支撑构件识别方法,包括:
S1:根据施工图,建立适用于Revit的建筑物模型。
具体地,根据施工图,建立适用于Revit的建筑物模型,该建筑物模型应主要包括柱、剪力墙、梁、板等需要配模的混凝土构件,如图2所示。需要说明的是,该建筑物模型可以是使用Revit创建的,也可是使用其他软件创建并导入Revit的。
S2:从建筑物模型中筛选出需要进行模板支撑的混凝土构件的族类型和尺寸标识。具体包括:
S21:通过外部命令接口IExternalCommand获得Revit的相关数据commandData,并通过commandData.Application.ActiveUIDocument. Document获取建筑物模型Revit文档中所有的混凝土构件模型及参数数据,构建第一元素过滤收集器并将全部混凝土构件模型置于其中,该第一元素过滤收集器的过滤器为类型过滤器,通过该类型过滤器过滤出全部混凝土构件模型中所包含的类型,形成第一列表;
S22:对第一列表进行遍历,筛选出Revit内建结构族类型及用户自定义结构族类型,成为第二列表;
S23:对于Revit内建结构族类型,按照默认参数寻找结构尺寸标识;对于用户自定义结构族类型,由用户自行输入结构尺寸标识;将结构尺寸标识与第二列表组合形成包含族类型和尺寸标识的第三列表。
S3:根据获取的族类型筛选出需要模板支撑验算的混凝土构件。具体包括:
构建第二元素过滤收集器并将全部混凝土构件模型置于其中,该第二元素过滤收集器的过滤器为根据第三列表构建的类别过滤器,通过类别过滤器对全部混凝土构件模型进行筛选,得到需要进行模板支撑验算的所有混凝土构件,成为第四列表。
S4:将需要模板支撑验算的混凝土构件拆分为梁合集、板合集及墙柱合集。具体包括:
S41:从第四列表中寻找梁构件、板构件、墙柱构件并分别形成列表,得到梁合集、板合集及墙柱合集;
S42:构建空的第一元素收集器,称为危大构件列表,用于收集在后续过程中确定的危险性较大的混凝土模板构件
S43:构建空的第二元素收集器,称为超危大构件列表,用于收集在后续过程中确定的超过一定规模危险性较大的混凝土模板构件。
S5:对于梁合集,计算其中每个梁构件的线载荷、梁跨度并分析其支模高度,识别出危险性梁构件。具体包括:
S51:对于每个梁构件,通过计算梁高与梁宽的乘积,并乘以混凝土材料密度,得到梁构件的线载荷;将线载荷大小与线载荷阈值进行比较,将符合条件的梁构件加入危大构件列表或超危大构件列表。更具体地,线载荷阈值包括第一线载荷阈值和第二线载荷阈值,若梁构件的线载荷大于或等于第一线载荷阈值且小于第二线载荷阈值,则该梁构件加入危大构件列表;若梁构件的线载荷大于或等于第二线载荷阈值,则该梁构件加入超危大构件列表。
S52:通过计算梁构件端点之间的距离,获得梁跨度;将梁跨度大小与跨度阈值进行比较,将符合条件的梁构件加入危大构件列表或超危大构件列表。更具体地,跨度阈值包括第一跨度阈值和第二跨度阈值,若梁构件的梁跨度大于或等于第一跨度阈值且小于第二跨度阈值,则该梁构件加入危大构件列表;若梁构件的梁跨度大于或等于第二跨度阈值,则该梁构件加入超危大构件列表。
S53:获得通过Element.Location获得梁构件的定位线,获得其特征点;若梁构件为直线及圆弧,则特征点为定位直线两个端点及中点;若梁构件为圆弧以外的曲线,则特征点为曲线端点及切点。
S54:构建引用相交器ReferenceIntersector,并将特征点作为原点,垂直向下的向量(0,0,-1)作为方向构建射线传入引用相交器中,通过ReferenceIntersector.FindNearest方法获得距离原点下方最近的构件的高度作为支模高度;由于梁的模板支撑具有连续性,当一条梁中存在支模高度不同的情况,如图3所示,则取最大值作为支模高度,将支模高度大小与梁支模高度阈值进行比较,将符合条件的梁构件加入危大构件列表或超危大构件列表。更具体地,梁支模高度阈值包括第一梁支模高度阈值和第二梁支模高度阈值,若梁构件的支模高度大于或等于第一梁支模高度阈值且小于第二梁支模高度阈值,则该梁构件加入危大构件列表;若梁构件的支模高度大于或等于第二梁支模高度阈值,则该梁构件加入超危大构件列表。
S6:对于板合集,计算其中每个板构件的施工总载荷、板跨度并分析其支模高度,识别出危险性板构件。具体包括:
S61:对于每个板构件,通过计算板厚与混凝土材料密度的乘积,获得板构件的面载荷,并加入施工载荷作为施工总载荷;将施工总载荷大小与施工总载荷阈值进行比较,将符合条件的板构件加入危大构件列表或超危大构件列表。更具体地,施工总载荷阈值包括第一施工总载荷阈值和第二施工总载荷阈值,若板构件的施工总载荷大于或等于第一施工总载荷阈值且小于第二施工总载荷阈值,则该板构件加入危大构件列表;若板构件的施工总载荷大于或等于第二施工总载荷阈值,则该板构件加入超危大构件列表。
S62:获得板构件的几何体信息Solid,遍历solid中储存的面信息Planarface,获得法向量垂直向下(0,0,-1)的面作为板构件的底面;通过Planarface. EdgeLoops获得底面的所有边EdgeArray;遍历EdgeArray获得底面的所有端点,如图4所示,计算相邻端点之间的距离,取最大值作为板跨度,板跨度L=max{AB,BC,CD,…,FA};将板跨度大小与板跨度阈值进行比较,将符合条件的板构件加入危大构件列表或超危大构件列表。更具体地,板跨度阈值包括第一板跨度阈值和第二板跨度阈值,若板构件的板跨度大于或等于第一板跨度阈值且小于第二板跨度阈值,则该板构件加入危大构件列表;若板构件的板跨度大于或等于第二板跨度阈值,则该板构件加入超危大构件列表。
S63:如图5所示,将板底面边线所有端点及中点进行连线,其在板边线端点、中点及板范围内的交点构成板的特征点。构建引用相交器ReferenceIntersector,并分别将底面的所有特征点作为原点,垂直向下的向量(0,0,-1)作为方向构建射线传入引用相交器中,通过ReferenceIntersector.FindNearest方法获得距离原点下方最近的构件及其高度,并将该高度作为支模高度。
S64:若所有特征点对应的支模高度均小于第一板支模高度阈值(如5m),在该板构件为非危险性较大板构件。
S65:若部分特征点的支模高度大于或等于第一板支模高度阈值,如图6所示,M点对应的支模高度大于第一板支模高度阈值,N、K点对应的支模高度小于第一板支模高度阈值;则遍历所有小于第一板支模高度阈值的特征点下方对应的构件,并获取其集合信息Solid并形成列表;对列表中每一个Solid,遍历Solid中储存的面,获得法向量为(0,0,1)的面,如图6中N’及K’对应的构件的顶面,将其加入支撑面列表中,遍历支撑面列表,获得标高最高的面,以其标高为准将支撑面列表中的其他面平移至该标高处;如图7所示,将支撑面列表中所有的面取并集获取的该处楼板的支撑面;将该支撑面向上投影,将原始的板构件拆分为两块新板构件F1、F2,支撑面投影对应的新板构件F1为非危险性较大板构件,另一新板构件F2加入危大构件列表。
S66:若所有特征点的支模高度均大于或等于第一板支模高度阈值,且小于第二板支模高度阈值(如8m),则该板构件加入危大构件列表。
S67:若有部分特征点的支模高度大于或等于第二板支模高度阈值,有部分特征点的支模高度小于第二板支模高度阈值且大于或等于第一板支模高度阈值,和/或部分特征点的支模高度小于第一板支模高度阈值;则参照步骤S65,将除支模高度大于或等于第二板支模高度阈值的这一部分的特征点外的另外两部分特征点下方对应的构件的支撑面分别向上投影,将原始的板构件进行拆分多个新板构件;将支模高度大于或等于第二板支模高度阈值的特征点对应的新板构件加入超危大构件列表,将支模高度小于第二板支模高度阈值且大于或等于第一板支模高度阈值的特征点对应的新板构件加入危大构件列表。
S68:若所有特征点的支模高度均大于或等于第二板支模高度阈值,则该板构件加入超危大构件列表。
S7:对于墙柱合集,由于Revit为了方便建模,允许同一位置的多层墙柱构件使用一个模型进行标识,也允许同一位置的一个墙柱构件使用多个模型进行表示,需要将模型进行整理后标识高度。如图8、图9所示,该处墙体底部位于T/RAFT层,顶部位于7层,中间有多道梁板结构进行约束,应将其理解为多个位于相同位置不同标高柱的模型合集,需要对其模型进行分割修改,并分析其高度,识别出危险性墙柱构件。具体包括:
S71:获取所有梁构件、板构件的几何信息合集,取其并集得到约束构件几何信息RestrictionSolid。
S72:获取墙柱构件的几何信息Solid,应用Revit提供的BooleanOperationsUtils.ExecuteBooleanOperation功能对墙柱构件的几何信息Solid及RestrictionSolid进行相交运算,得到墙柱构件与梁构件、板构件的交集X1,如图10所示。
S73:通过相交结果推断相交关系:
(1)计算交集X1的体积V1;
(2)若V1=0,说明两个多面体不相交,该处墙柱构件与梁构件、板构件不存在约束相交;
(3)若V1≠0,说明存在交集,则存在约束相交,需要对墙柱进行修改,如图11所示,修改过程包括:
使用交集X1对墙柱构件的几何信息Solid进行剪切,得到两个新墙柱构件X2和X3,将标高较低的新墙柱构件(在其他实施例中也可选择统一选择标高较高的新墙柱构件)X2与X1求并集得到新墙柱构件X4,将新墙柱构件X3和X4加入到墙柱合集中,重复步骤S72-S73直至无法修改。
S74:获取约束构件几何信息RestrictionSolid中所有面的合集PlanarfaceList。
S75:对步骤S73得到的新的墙柱合集获取其定位信息,如图12及图13所示,若为柱构件,则定位信息为定位点;若为墙构件,则定位信息为定位线;计算其与PlanarfaceList中所有面距离的最小值L1。
S76:若L1大于柱边距的1/2或墙厚的1/2,则该处墙柱无约束,由于常规墙柱端部均有约束,说明该处并非端部,寻找与该位置信息相同的墙柱进行合并延伸,如图14所示;若L1小于或等于柱边距的1/2或墙厚的1/2,则该处墙柱有约束,无需延伸。
S77:经过步骤S76修改后的墙柱构件合集,获得各墙柱构件高度,将高度大小与高度阈值进行比较,将符合条件的墙柱构件加入危大构件列表或超危大构件列表。更具体地,高度阈值包括第一高度阈值和第二高度阈值,若墙柱构件的高度大于或等于第一高度阈值且小于第二高度阈值,则该墙柱构件加入危大构件列表;若墙柱构件的高度大于或等于第二高度阈值,则该墙柱构件加入超危大构件列表。
S8:根据上述识别出的危险性模板支撑工程构件,获取各危险性模板支撑工程构件ID,进行突出显示,如图15所示。其中突出显示的方式包括但不限于通过在Revit中修改模型的模型颜色、填充图案、透视关系等方式。
实施例2
本实施例提供了一种电子设备,包括:
存储器,其存储有计算机程序;
处理器,用于执行所述计算机程序实现如实施例1所述的基于Revit的危大模板支撑构件识别方法。
实施例3
本实施例提供了一种计算机可读存储介质,其存储有计算机程序,该计算机程序被处理器执行时实现如实施例1所述的基于Revit的危大模板支撑构件识别方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。