一种基于Revit-OpenSEES的钢筋混凝土框架结构抗震分析方法

allin2023-01-06  148


一种基于revit-opensees的钢筋混凝土框架结构抗震分析方法
技术领域
1.本发明属于土木工程技术领域,涉及一种基于revit-opensees的钢筋混凝土框架结构抗震分析方法。


背景技术:

2.目前,bim技术在国内外的土木工程领域发展迅速,但各种主流bim软件的功能有限,一般要通过ifc标准在建筑各专业软件之间进行数据转换,以实现基于bim的数据共享和协同工作。
3.随着城市化的发展,地震对经济发展和人民生活的潜在威胁越来越严重,所以对建筑抗震理论及方法的不断发展和完善尤为重要。目前,基于bim的建筑结构抗震设计和分析的研究和应用仍处于起步阶段,bim与结构抗震分析软件间的模型转换仍局限于几何信息和材料简单信息的转换,而对于竖向及水平荷载、分析单元等信息还需要在结构软件中进行设置。并且多数研究工作仍没有实现bim与抗震分析功能的集成。如何将建筑结构的设计、分析和评价等功能集成于bim平台,以实现直接基于bim的共享数据和协同分析是进一步研究所需解决的问题。


技术实现要素:

4.为了解决抗震分析技术bim集成的技术问题,实现直接基于bim建筑结构模型的抗震分析与评价,本发明提供一种基于revit-opensees的钢筋混凝土框架结构抗震分析方法,实现在revit软件中可以直接进行材料属性、构件截面、分析单元、荷载工况以及分析和输出等的设置,并调用opensees程序进行钢筋混凝土框架结构的弹塑性抗震分析;在revit软件中以图形、表格和数据文件形式直接输出opensees程序的分析结果;在revit软件中可以通过三维模型视图和虚拟漫游的方式展示钢筋混凝土框架结构的地震损伤结果;在revit软件中可以自动存储分析得到的关键地震损伤信息,并可以通过结构构件属性表查看对应不同地震水平下的损伤信息。
5.技术方案如下:
6.一种基于revit-opensees的钢筋混凝土框架结构抗震分析方法,步骤如下:
7.s1、在分析前处理模块中,从revit的bim模型向opensees进行有限元模型转换,完成模型转换后,进行抗震分析及输出设置;
8.s2、在分析后处理模块中,对opensees输出的分析数据进行分组、整理和提取,以图、表或文档等形式进行展示和输出;
9.s3、在分析后处理模块中,根据opensees输出的混凝土和钢筋应变数据对结构进行地震损伤二次分析,以确定opensees无法直接得到的结构各构件地震损伤等级;
10.s4、在分析后处理模块中,将关键的结构地震损伤信息自动储存到revit结构模型中,作为bim数据用以协同分析工作以及建筑全寿命周期的结构分析和信息管理;
11.s5、在地震损伤可视化展示模块中,通过三维视图对地震损伤状态进行展示,或者通过vr软件进行虚拟漫游。
12.进一步,步骤s1具体步骤如下:
13.节点转换:提取revit结构模型中的分析节点及相应坐标,通过编号类提供编号,获取整体楼板的中心坐标和以梁为分隔线分隔出来的每一块局部楼板的中心坐标;
14.约束设置:筛选需要施加底部约束的节点,利用已经获取的各层楼板中心点,定义每层的楼板约束;
15.材料设置:按照opensees分析所需要的材料力学信息在revit中开发设置功能,在材料设施时,在revit结构模型中读取材料的类型,然后将设置好的力学参数按照材料类型匹配给模型中的相应材料;
16.截面设置:对于截面的钢筋纤维,在revit模型中读取钢筋的坐标和材料属性,并转换为相应的tcl命令流;而对于混凝土纤维,则需要先在截面进行纤维网格划分,通过选择截面两个正交方向的纤维数以生成混凝土纤维;针对构件截面,利用revit二次开发技术开发的数据提取算法自动提取钢筋的材料信息、钢筋的相对位置信息、混凝土的材料信息、混凝土划分网格数;
17.单元设置:梁和柱单元的设置界面分开用以对梁和柱设置不同的单元类型;
18.竖向荷载设置:对于梁、柱和墙等构件的竖向恒荷载,通过读取revit模型的几何数据和材料类型信息自动计算得到;对于楼、屋面的恒、活载,分别按照双向板和单向板的荷载传递规则以线荷载的形式自动传递到支撑梁上,并按照重力荷载代表值的组合规则确定各楼层的竖向荷载;将自动计算得到各楼层的重力荷载代表值,按照节点所分配的受荷面积再分配给各个节点;
19.输出及分析设置:包括静态输出设置和界面输出设置,静态输出设置是在后台代码中预设节点位移、单元剪力输出命令流,为后续分析提供基本数据;界面输出设置是使用者在前端界面的对话框中进行目标记录类型选择、设定输出形式、选择保存路径、确定是否开启时间序列、选择节点、选择输出数据类型,程序会自动生成相应的tcl命令流;根据opensees程序的分析规则和参数设置要求,分别进行模态分析、重力分析、动力时程分析和pushover分析;
20.分析调用:在输出tcl命令流的同时,直接在revit平台调用opensees进行有限元分析。
21.进一步,截面设置中利用revit二次开发技术开发的数据提取算法自动提取所需信息,具体流程如下:
22.(1)利用元素收集器filteredelementcollector、类别过滤器elementcategoryfilter和函数wherepasses过滤纵筋;
23.(2)筛选属于同一个构件的纵向钢筋;
24.(3)记录每个纵向钢筋的相对于截面的坐标,构件截面的x方向记录钢筋的y、z坐标,y方向记录钢筋的x、z坐标;
25.(4)获取钢筋的直径,利用圆面积计算公式,计算每个纵向钢筋的横截面积;
26.(5)编写混凝土纤维生成函数createconcretefiber(),将截面尺寸、截面x方向纤维数和截面y方向纤维数作为参数传入函数,计算出截面相应的混凝土纤维坐标;
27.(6)将familysymbol id、钢筋材质id、钢筋尺寸、混凝土材质id等唯一属性组合成该截面的匹配识别码,防止重复获取不同构件的相同截面。
28.进一步,步骤s2包括顶点位移时程曲线的展示和输出,实现步骤如下:
29.(1)利用windows的file类读取opensees分析节点位移文件,筛选顶部目标节点的时程数据;
30.(2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转化为double类型;
[0031]
(3)将时间数据存放到list《double》times泛型集合中,将位移数据存放到list《double》disp泛型集合中;
[0032]
(4)利用winform控件库中的chart控件绘制曲线,将times和disp作为坐标点拟合出曲线。
[0033]
进一步,步骤s2包括基底剪力时程曲线的展示和输出,实现步骤如下:
[0034]
(1)利用windows的file类读取opensees分析单元剪力数据文件,筛选底部单元的剪力的时程数据,每个单元的剪力数据为13列,第1列为时间,第2-7列为单元一端的x、y、z方向剪力和mx、my、my弯矩,第8-13列为另一端的x、y、z方向剪力和mx、my、mz弯矩;
[0035]
(2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转化为double类型;
[0036]
(3)将时间数据存放到list《double》times泛型集合中,将位移数据存放到list《double》force泛型集合中;
[0037]
(4)利用winform控件库中的chart控件绘制曲线,将times和force作为坐标点拟合出曲线。
[0038]
进一步,步骤s2包括pushover分析数据的展示和输出,实现步骤如下:
[0039]
(1)利用windows的file类读取opensees推覆分析顶点位移文件,其中第一列为荷载倍数、第二列为位移数据,筛选出上述两列数据;
[0040]
(2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转化为double类型;
[0041]
(3)将位移数据存放到list《double》disp泛型集合中,将荷载倍数数据存放到list《double》loads泛型集合中;
[0042]
(4)利用winform控件库中的chart控件绘制曲线,将disp和loads作为坐标点绘制出曲线。
[0043]
进一步,步骤s3中,实现地震损伤等级分析步骤如下:
[0044]
(1)数据提取:利用file类循环读取应变数据存入string[]字符串数组;
[0045]
(2)数据筛选:利用字符串分割函数,将目标数据分割出来并转化为double类型;
[0046]
(3)取最大值:计算应变时程数据绝对值的最大值;
[0047]
(4)判断损伤等级:通过基于下表判别准则的损伤等级判断函数,判断该最大值所在的损伤区间,即可得到该构件的损伤情况;
[0048][0049]
(5)损伤数据展示:利用winform的datagridview控件,在地震损伤可视化展示模块展示损伤数据。
[0050]
进一步,步骤s4中,通过revit项目参数进行存储实现步骤如下:
[0051]
(1)设置共享参数文件地址、参数组名称以及参数类型等条件,创建共享参数文件;
[0052]
(2)读取共享参数文件,将共享参数与模型构件进行绑定,为指定的族添加项目参数;
[0053]
(3)最后为项目参数赋值,将分析数据存入对应的模型构件中,在revit中的属性栏界面查看任意构件的地震损伤结果数据。
[0054]
进一步,步骤s5中,通过三维视图对地震损伤状态进行展示实现步骤如下:
[0055]
(1)过滤族实例:利用元素收集器类、元素类别过滤器和wherepasses()函数过滤族实例familyinstance;
[0056]
(2)匹配构件:根据损伤分析的结果和revit中构件的族实例匹配;
[0057]
(3)查找族实例属性:筛选控制构件表面着色的属性;
[0058]
(4)修改颜色:根据损伤结果,修改构件颜色,以此展示构件损伤状态。
[0059]
进一步,步骤s5中,将颜色标注后的revit模型在revit漫游,或3dmax漫游,或fuzor漫游中加载,用以在建筑结构模型内部进行虚拟漫游,以便观察建筑结构内各构件的损伤等级和分布,并查看相应构件的地震损伤信息。
[0060]
本发明的有益效果是:
[0061]
本发明所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法具有以下有益效果:
[0062]
本发明以revit软件为平台,使用c#语言,通过revit api接口开发了集成revit和opensees的结构抗震弹塑性分析和评价程序rto。
[0063]
操作人员在revit软件中打开revit建筑结构模型后,启动rto程序插件,在该程序中针对模型进行材料力学属性设置、分析单元选取、构件截面设置、结构约束设置、竖向荷载设置、各类分析设置和输出设置等,并自动生成tcl命令流;在rto程序中调用opensees读取tcl命令流进行抗震有限元分析和输出分析数据,操作人员在该程序中根据分析输出设置进行后处理分析,包括各种曲线图、表格和文档数据的数据的展示和输出。此外,可以通过自动调整revit模型颜色的方式实现结构地震损伤状态的可视化展示,并可以将地震损伤关键信息存储入revit构件模型的属性中,作为bim信息的一部分用于bim协同分析和建筑全生命周期的应有和管理。
[0064]
本发明实现了bim常用软件与有限元分析程序的集成,实现了直接基于bim模型的钢筋混凝土框架结构抗震分析和损伤评价,为结构抗震分析能够参与bim的协同工作提供了一种解决方案。另外,本发明也为opensees提供了前后处理功能,在bim应用和建筑结构抗震领域具有一定的应用价值。
附图说明
[0065]
图1为rto程序的总体设计思路图;
[0066]
图2为rto三层架构示意图;
[0067]
图3为bim数据提取的总体逻辑图;
[0068]
图4为revit中的分析节点示意图;
[0069]
图5为整层楼板与分隔局部楼板示意图;
[0070]
图6为梁构件配筋的revit模型图;
[0071]
图7为柱构件截面配筋的revit模型图;
[0072]
图8为竖向荷载自动施加算法流程图;
[0073]
图9为revit项目参数存储流程图;
[0074]
图10为fuzor漫游参考图;
[0075]
图11为rto程序总体架构图;
[0076]
图12为分析前处理模块架构图;
[0077]
图13为分析后处理模块架构图;
[0078]
图14为rto系统前端操作界面;
[0079]
图15为rto系统的约束设置界面;
[0080]
图16为rto混凝土材料设置界面;
[0081]
图17为混凝土纤维网格划分界面;
[0082]
图18为单元类型选择界面;
[0083]
图19为竖向荷载设置界面;
[0084]
图20为输出设置记录类型界面;
[0085]
图21为单一节点选择界面;
[0086]
图22为范围节点选择界面;
[0087]
图23为节点数据类型界面;
[0088]
图24为单元数据类型界面;
[0089]
图25为输出设定预览窗口界面;
[0090]
图26为重力分析设置界面;
[0091]
图27为pushover分析设置界面;
[0092]
图28为动力时程分析设置界面;
[0093]
图29为顶层位移时程曲线图界面;
[0094]
图30为顶层位移-基底剪力格式的pushover能力曲线图界面;
[0095]
图31为顶层位移时程曲线比较图;
[0096]
图32为最大层间位移角分布曲线比较图
[0097]
图33为pushover能力曲线比较图;
[0098]
图34为损伤分析及输出数据表界面;
[0099]
图35为标注地震损伤状况的revit模型图;
[0100]
图36为标注地震损伤状况的bim模型漫游示意图;
[0101]
图37为储存在revit梁构件属性中的地震损伤信息界面;
[0102]
图38为储存在revit柱构件属性中的地震损伤信息界面。
具体实施方式
[0103]
下面将参照附图1-38更详细地描述本发明所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法。
[0104]
实施例1
[0105]
1程序设计思路
[0106]
rto程序的总体设计思路如图1所示,具体包括:(1)分析前处理模块、(2)分析后处理模块、(3)地震损伤可视化展示模块。
[0107]
2程序架构
[0108]
rto程序是基于三层架构的开发框架进行开发,并根据软件的应用场景和功能进行了适当的调整。rtoforms为表示层;rtobll为业务逻辑层;rtodal为数据访问层;rtodatabase为替代数据库作用的数据类;rtocommon为公共命令层;rtomodel用来定义自定义类。层级之间的关系如图2所示。
[0109]
3前处理模块技术要点
[0110]
rto程序前处理模块包含了revit与opensees的模型数据转换和抗震分析设置功能。其中,从revit的bim模型向opensees的有限元模型转换可以理解为bim数据的提取过程,其总体逻辑流程如图3所示。完成模型转换后,为了调用opensees程序进行有限元分析,还需在rto程序中开发抗震分析设置及输出设置功能。
[0111]
3.1节点转换
[0112]
(1)分析节点提取
[0113]
opensees建模中需要建立每个梁、柱和墙等构件的节点,opensees三维节点定义的命令流为:node编号x坐标y坐标z坐标。而revit结构模型正好有与之相对应的分析节点,如图4所示。在revit软件中可以启用结构分析模型,各构件之间的连接会生成分析节点(referencepoint),通过元素收集器(filteredelementcollector)、类别过滤器(elementcategoryfilter)和wherepasses函数可以获取到revit结构模型中的分析节点及相应坐标。
[0114]
(2)编号类
[0115]
三维坐标可以从分析节点的空间坐标中直接获取,每个节点需要赋予一个不重复的编号,因此设计了一个编号类uniquetag,它提供了一个方法gettag()来提供编号。通过循环语句即可生成每一个node,在三层架构的bll层调用dal层的insert函数即可将node存放在database数据类的属性中。
[0116]
(3)楼板节点
[0117]
在opensees中的楼板是以楼板的中心节点来定义,revit模型中的楼板提供了中心节点的坐标origin,但是实际研究中发现不仅需要整体楼板的中心坐标,还需要以梁为
分隔线分隔出来的每一块局部楼板的中心坐标,如图5所示。
[0118]
3.2约束设置
[0119]
opensees的tcl约束命令流为:fix节点编号x y z mx my mz。有两种约束需要考虑,即底部约束和楼板约束。
[0120]
(1)底部约束
[0121]
在所有节点中计算出z坐标的最小值minz,将minz作为条件筛选出和minz相同z坐标的节点。此处需要注意,由于坐标数据以double类型存储,存在精度问题,所以不能直接利用“==”来比较相同,需要利用a-b《0.00001(可自行控制精度)来判断坐标是否相同。筛选出的节点即为需要施加底部约束的节点。
[0122]
(2)楼板约束
[0123]
楼板约束需要配合刚性板假定来施加,利用已经获取的各层楼板中心点,定义每层的楼板约束。在刚性板假定中,主节点为楼板刚心,附属节点为同层其他节点。
[0124]
3.3材料设置
[0125]
revit软件只提供材料类型等简单信息,而不包括有限元分析所需要的材料力学信息,所以不能直接转换为opensees分析所需要的材料模型数据。为解决此问题,在rto程序的前端开发了材料设置功能,即按照opensees分析所需要的材料力学信息在revit中开发设置功能,例如混凝土材料所需要的抗压屈服强度、峰值应变、屈服后残余强度等参数。
[0126]
在材料设施时,rto程序可以在revit结构模型中读取材料的类型,然后将设置好的力学参数按照材料类型匹配给模型中的相应材料,并形成关于材料属性的tcl命令流。
[0127]
3.4截面设置
[0128]
考虑opensees的纤维模型能够很好的模拟钢筋混凝土框架结构构件塑性铰区的力学性能,在rto程序中开发了针对纤维截面的设置功能。对于截面的钢筋纤维,程序可以自动在revit模型中读取钢筋的坐标和材料属性,并转换为相应的tcl命令流;而对于混凝土纤维则需要先在截面进行纤维网格划分,所以在rto程序中开发了混凝土纤维设置功能,通过选择截面两个正交方向的纤维数以生成混凝土纤维。
[0129]
针对构件截面,需要获取钢筋的材料信息、钢筋的相对位置信息、混凝土的材料信息、混凝土划分网格数。利用revit二次开发技术开发的数据提取算法可以将所需信息自动提取,具体流程如下:
[0130]
(1)利用元素收集器filteredelementcollector、类别过滤器elementcategoryfilter和函数wherepasses过滤纵筋;
[0131]
(2)筛选属于同一个构件的纵向钢筋;
[0132]
(3)记录每个纵向钢筋的相对于截面的坐标,构件截面的x方向记录钢筋的y、z坐标,y方向记录钢筋的x、z坐标;
[0133]
(4)获取钢筋的直径,利用圆面积计算公式,计算每个纵向钢筋的横截面面积;
[0134]
(5)编写混凝土纤维生成函数createconcretefiber(),将截面尺寸、截面x方向纤维数和截面y方向纤维数作为参数传入函数,计算出截面相应的混凝土纤维坐标;
[0135]
将familysymbol id、钢筋材质id、钢筋尺寸、混凝土材质id等唯一属性组合成该截面的匹配识别码,防止重复获取不同构件的相同截面。
[0136]
3.5单元设置
[0137]
根据opensees中的常用分析单元,rto程序提供了四种单元的设置功能。以dispbeamcolumn单元为例,其tcl命令流为:element dispbeamcolumn$eletag$inode$jnode$numintgrpts$sectag$transftag.
[0138]
以上命令流中参数含义如表1所示:
[0139]
表1dispbeamcolumn单元定义的参数
[0140][0141]
其中,编号、两端节点编号、截面编号和坐标转换编号均可以通过程序自动关联,使用者只需设定单元积分点数即可。此外,为了满足不同的设置要求,梁和柱单元的设置界面分开,可以对梁和柱设置不同的单元类型。
[0142]
3.6竖向荷载设置
[0143]
对于梁、柱和墙等构件的竖向恒荷载,rto程序可以通过读取revit模型的几何数据和材料类型信息自动计算得到。而对于楼、屋面的恒、活载则需分别按照双向板和单向板的荷载传递规则以线荷载的形式自动传递到支撑梁上,并按照重力荷载代表值的组合规则确定各楼层的竖向荷载。但是在opensees程序中,结构竖向荷载是被分散在模型的各节点上。所以,rto程序进一步将自动计算得到各楼层的重力荷载代表值,按照节点所分配的受荷面积再分配给各个节点。基于revit模型信息的竖向荷载生成算法如图8所示。
[0144]
点荷载计算原理与质量源计算类似,在线荷载的基础上,将梁上的线荷载乘以长度得到集中荷载,将集中荷载平均分配给两端的节点,柱同理。
[0145]
3.7输出及分析设置
[0146]
rto程序的输出设置包括静态输出设置和界面输出设置。
[0147]
(1)静态输出设置是在后台代码中预设节点位移、单元剪力等输出命令流,为后续分析提供基本数据。此部分为固定输出,前端无法查看,设置过程均在后台完成,会增加少量的计算时间,但是不会增加计算难度。
[0148]
(2)界面输出设置是指使用者在前端界面的对话框中进行目标记录类型选择、设定输出形式、选择保存路径、确定是否开启时间序列、选择节点、选择输出数据类型等,程序会自动生成相应的命令流。
[0149]
根据opensees程序的分析规则和参数设置要求,分别开发了模态分析、重力分析、动力时程分析和pushover分析的分析设置界面。
[0150]
3.8分析调用
[0151]
rto中开发了opensees调用功能,在rto输出tcl命令流的同时,可以直接在revit平台调用opensees进行有限元分析。
[0152]
4后处理模块技术要点
[0153]
在rto系统中,后处理模块可完成的操作内容包括:
[0154]
(1)对opensees输出的分析数据进行分组、整理和提取,以图、表或文档等形式进行展示和输出。
[0155]
(2)根据opensees输出的混凝土和钢筋应变数据对结构进行地震损伤二次分析,以确定opensees无法直接得到的结构各构件地震损伤等级。
[0156]
(3)将关键的结构地震损伤信息自动储存到revit结构模型中,作为bim数据用以协同分析工作以及建筑全寿命周期的结构分析和信息管理。
[0157]
4.1图表及文档输出
[0158]
通过c#编程,自动提取opensees的分析数据,通过整理和处理后以图形、表格或文档形式输出。以三种功能为例,说明后处理模块图表输出功能开发的思路与实现。
[0159]
(1)顶点位移时程曲线
[0160]
1)利用windows的file类可以读取opensees分析节点位移文件,筛选顶部目标节点的时程数据。
[0161]
2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转化为double类型。
[0162]
3)将时间数据存放到list《double》times泛型集合中,将位移数据存放到list《double》disp泛型集合中。
[0163]
4)利用winform控件库中的chart控件绘制曲线,将times和disp作为坐标点拟合出曲线。
[0164]
(2)基底剪力时程曲线
[0165]
1)利用windows的file类可以读取opensees分析单元剪力数据文件,筛选底部单元的剪力的时程数据,此处需要注意的是一个单元的剪力数据为13列,第1列为时间,第2-7列为单元一端的x、y、z方向剪力和mx、my、my弯矩,第8-13列为另一端的x、y、z方向剪力和mx、my、mz弯矩。
[0166]
2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转化为double类型。
[0167]
3)将时间数据存放到list《double》times泛型集合中,将位移数据存放到list《double》force泛型集合中。
[0168]
4)利用winform控件库中的chart控件绘制曲线,将times和force作为坐标点拟合出曲线。
[0169]
(3)pushover数据
[0170]
1)利用windows的file类可以读取opensees推覆分析顶点位移文件,其中第一列为荷载倍数、第二列为位移数据,筛选出这两列数据。
[0171]
2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转化为double类型。
[0172]
3)将位移数据存放到list《double》disp泛型集合中,将荷载倍数数据存放到list《double》loads泛型集合中。
[0173]
4)利用winform控件库中的chart控件绘制曲线,将disp和loads作为坐标点绘制出曲线。
[0174]
4.2地震损伤分析
[0175]
根据《建筑抗震韧性评价标准》,钢筋混凝土框架结构构件的地震损伤状态可以通过正截面材料应变进行判别,各损伤等级对应的材料应变判别标准如表2所示。而opensees可以输出构件在地震作用下纤维的应变时程数据,将纵向钢筋和混凝土的最大应变值代入表2便可以得到各结构构件的地震损伤等级。
[0176]
基于以上原理编写地震损伤分析算法,将所有构件的钢筋纤维和混凝土纤维的应变数据提取出来,按照应变值判断损伤等级。算法实现过程如下:
[0177]
1)数据提取。利用file类循环读取应变数据存入string[]字符串数组;
[0178]
2)数据筛选。利用字符串分割函数,将目标数据分割出来并转化为double类型;
[0179]
3)取最大值。计算应变时程数据绝对值的最大值。
[0180]
4)判断损伤等级。通过损伤等级判断函数,判断该最大值所在的损伤区间,即可得到该构件的损伤情况。
[0181]
5)损伤数据展示。利用winform的datagridview控件,在rto后处理界面展示损伤数据。
[0182]
表2基于应变的钢筋混凝土框架结构构件地震损伤判别标准
[0183][0184]
注:ε1为钢筋主拉应变;ε2为混凝土主拉应变;ε
p
和ε
cu
分别为混凝土单轴受压峰值应变和极限应变;εy为钢筋屈服应变。
[0185]
4.3损伤信息存储
[0186]
在得到结构各构件的地震损伤等级后,可以将这些信息自动存储在revit构件模型中,作为bim数据应用于结构协同分析和全生命周期的集成化管理。rto程序中采用了revit项目参数存储的方式,可以利用revit二次开发技术实现快速批量存储。使用者可以在revit属性栏界面直接查看、添加和修改数据。
[0187]
通过revit项目参数进行存储时,首先设置共享参数文件地址、参数组名称以及参数类型等条件,创建共享参数文件。随后,读取共享参数文件,将共享参数与模型构件进行绑定,为指定的族添加项目参数。最后为项目参数赋值,将分析数据存入对应的模型构件中,可在revit中的属性栏界面查看任意构件的抗震评价结果数据。revit项目参数存储的实现流程如图9所示。
[0188]
5损伤可视化展示的技术要点
[0189]
在基于bim的结构地震损伤状态展示中,除了可以运用bim软件强大的三维视图功能,还可以将bim模型导入vr软件中进行虚拟漫游,充分发挥其可视化的优势。
[0190]
5.1三维视图展示
[0191]
设定地震损伤等级与revit模型颜色的对应关系如表3所示。运用revit二次开发
技术根据结构构件损伤等级自动改变其颜色,通过三维视图方式展示结构在地震作用下的损伤状况及分布特点。具体算法如下:
[0192]
(1)过滤族实例。利用元素收集器类、元素类别过滤器和wherepasses()函数过滤族实例familyinstance;
[0193]
(2)匹配构件。根据损伤分析的结果和revit中构件的族实例匹配;
[0194]
(3)查找族实例属性。筛选控制构件表面着色的属性;
[0195]
修改颜色。根据损伤结果,修改构件颜色,以此展示构件损伤状态。
[0196]
表3对应地震损伤等级的revit模型标注颜色
[0197]
损伤状态等级0级1级2级3级4级模型标注颜色贝壳色黄色橙色红色深红色
[0198]
5.2虚拟漫游展示
[0199]
可以将颜色标注后的revit模型在虚拟漫游软件中加载,例如revit漫游、3dmax漫游和fuzor漫游。使用人可以在建筑结构模型内部进行虚拟漫游,这样可以更清晰地观察建筑结构内各构件的损伤等级和分布,并可以查看相应构件的地震损伤信息。如图10所示。
[0200]
实施例2
[0201]
本实施例对rto系统在revit软件中运行的具体界面进行说明。
[0202]
图14为rto系统在revit软件中运行的界面。左侧为功能切换区,右侧上方为参数设置区域,右侧下方为信息提示区,对用户的操作进行信息提示。
[0203]
1系统前处理的操作
[0204]
1.1模型节点转换
[0205]
在打开revit结构模型的程序中启动rto系统,rto系统会在后台自动识别revit结构模型中的节点,并转换为opensees可读取的节点参数。
[0206]
1.2约束设置
[0207]
在前端界面的功能切换区点选约束设置,在参数设置区可添加基础底部约束和选择楼板假定,如图15所示,其中楼板假定对应着opensees中的刚性楼板单元模型和膜单元模型,而两种模型与承重系统采用不同的约束连接。
[0208]
1.3材料设置
[0209]
通过rto系统可以自动读取revit模型中材料的类型,并可在前端界面进行混凝土材料、钢筋材料力学属性的设置,如图16所示。
[0210]
1.4截面设置
[0211]
rto系统采用opensees的纤维模型模拟钢筋混凝土构件截面的力学性能,所以这里的截面是指纤维截面。rto系统可以在revit模型中自动读取钢筋的坐标和材料信息,转换为opensees可读取的截面钢筋纤维命令流。而对于截面的混凝土纤维设置,需要在前端界面的截面设置进行纤维网格划分,并根据混凝土材料信息转换为截面混凝土纤维命令流。图17为截面混凝土纤维网格划分界面。
[0212]
1.5单元设置
[0213]
在rto程序中可选择四种常用的opensees单元用于模拟梁、柱构件的力学性能。
[0214]
通过单元设置功能可以选择分析单元类型,并赋予给所选取的结构构件。图18为柱的单元类型的设置界面。
[0215]
1.6竖向荷载设置
[0216]
在荷载工况参数设置界面输入重力荷载代表值,程序会调用荷载分配算法,将重力荷载通过线荷载或点荷载施加在梁或柱上,并向下传递。图19为竖向荷载设置界面。
[0217]
1.7输出设置
[0218]
通过输出界面可以设置各类分析所需输出信息的类型、方式、范围和存储等,如图20所示,包括记录类型、输出形式、保存地址、范围、数据类型等的选择和自动生成的tcl命令流窗口。
[0219]
(1)记录类型选择
[0220]
记录类型包括节点、单元、截面和纤维,可以分析根据需要选择输出某一类数据结果。例如,若选择节点类型,则会输出节点反应数据。由于不同的记录类型所需设置的参数不同,所以切换记录类型时的界面会自动切换。
[0221]
(2)输出形式
[0222]
提供两种输出形式设定,file类为默认类型,记录输出.out类型文件,xml记录输出txt类文件。
[0223]
(3)范围类型
[0224]
为了减少运算量,可以在输出设置中设定输出范围,例如通过单一节点或者范围节点选择结构的几个关键节点,输出这些节点的反应数据,如图21和图22所示。
[0225]
(4)数据类型
[0226]
每一种记录类型对应了不同的数据类型,例如记录类型为节点,可以选择输出绝对位移、速度、加速度等数据类型。切换记录类型时,数据类型会与记录类型自动匹配。图23和图24中分别为节点类型和单元类型所对应的数据类型。
[0227]
(5)输出设定命令流预览
[0228]
在输出设定界面右侧提供了输出命令流预览窗口,已定义好的输出设定在列表中自动同步展示,可以及时发现错误并改正,如图25所示。
[0229]
1.8结构分析设置
[0230]
(1)重力分析设置
[0231]
在重力分析界面,需设定积分器、矩阵带宽处理、收敛准则、迭代算法、最大迭代步和分析类型等设置,如图26所示。
[0232]
(2)pushover分析设置
[0233]
在pushover分析设置中,除了积分器、矩阵带宽处理、收敛准则等分析设定外,程序还提供了推覆力方向和加载模式设置功能,其中加载模式包括三角分布、均匀分布、抛物线分布和振型分布四种模式,如图27所示。
[0234]
(3)动力时程分析设置
[0235]
动力时程分析的设置界面如图28所示。需要链接地震波记录文件,设置地震波的调幅系数、地震波数据的时间间隔,设置结构阻尼比等动力参数设置。
[0236]
2系统后处理的操作
[0237]
2.1图表及数据输出
[0238]
(1)图表输出
[0239]
rto系统后处理中可以输出相应的时程分析曲线图,包括:各节点的位移时程、各
楼层的剪力时程、各楼层的滞回耗能时程图等。可以分别输出顶层位移-基底剪力格式和顶层位移-荷载倍数格式的pushover能力曲线图,其中基底剪力数据是通过侧向推覆力之和乘以荷载倍数计算得到。此外,rto系统后处理中还可以输出模态分析数据表。图29和图30分别给出了程序输出的顶层位移时程曲线图和pushover能力曲线图。
[0240]
(2)文档数据输出
[0241]
rto系统的后处理还可以通过文档形式输出分析数据,便于使用者对数据进行深入分析。图31、图32和图33为根据系统输出的数据采用其他软件绘制的分析图。
[0242]
2.2损伤二次分析及输出和展示
[0243]
opensees可以输出构件在地震作用下的纤维应变数据,通过损伤二次分析可以评价每个构件的地震损伤等级。图34为损伤分析以及损伤判别数据的展示界面。
[0244]
为了能够在revit模型中清晰展示结构地震损伤状况,根据表3中各损伤等级所对应的颜色对revit中各模型构件进行标注。图35和图36分别为通过revit三维视图和虚拟漫游所展示的地震损伤状况。
[0245]
2.3地震损伤数据标注
[0246]
通过弹塑性分析,得到结构构件中纵筋和混凝土的应变数据,根据表2对各构件进行地震损伤等级判定,并可以将损伤信息自动添加入revit模型中各构件的属性栏中,如图37和图38所示。
[0247]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

技术特征:
1.一种基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤如下:s1、在分析前处理模块中,从revit的bim模型向opensees进行有限元模型转换,完成模型转换后,进行抗震分析设置和输出设置;s2、在分析后处理模块中,对opensees输出的分析数据进行分组、整理和提取,以图、表或文档等形式进行展示和输出;s3、在分析后处理模块中,根据opensees输出的混凝土和钢筋应变数据对结构进行地震损伤二次分析,以确定opensees无法直接得到的结构各构件地震损伤等级;s4、在分析后处理模块中,将关键的结构地震损伤信息自动储存到revit结构模型中,作为bim数据用以协同分析工作以及建筑全寿命周期的结构分析和信息管理;s5、在地震损伤可视化展示模块中,通过三维视图对地震损伤状态进行展示,或者通过vr软件进行虚拟漫游。2.如权利要求1所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤s1具体步骤如下:节点转换:提取revit结构模型中的分析节点及相应坐标,通过编号类提供编号,获取整体楼板的中心坐标和以梁为分隔线分隔出来的每一块局部楼板的中心坐标;约束设置:筛选需要施加底部约束的节点,利用已经获取的各层楼板中心点,定义每层的楼板约束;材料设置:按照opensees分析所需要的材料力学信息在revit中开发设置功能,在材料设施时,在revit结构模型中读取材料的类型,然后将设置好的力学参数按照材料类型匹配给模型中的相应材料;截面设置:对于截面的钢筋纤维,在revit模型中读取钢筋的坐标和材料属性,并转换为相应的tcl命令流;而对于混凝土纤维,则需要先在截面进行纤维网格划分,通过选择截面两个正交方向的纤维数以生成混凝土纤维;针对构件截面,利用revit二次开发技术开发的数据提取算法自动提取钢筋的材料信息、钢筋的相对位置信息、混凝土的材料信息、混凝土划分网格数;单元设置:梁和柱单元的设置界面分开用以对梁和柱设置不同的单元类型;竖向荷载设置:对于梁、柱和墙等构件的竖向恒荷载,通过读取revit模型的几何数据和材料类型信息自动计算得到;对于楼、屋面的恒、活载,分别按照双向板和单向板的荷载传递规则以线荷载的形式自动传递到支撑梁上,并按照重力荷载代表值的组合规则确定各楼层的竖向荷载;将自动计算得到各楼层的重力荷载代表值,按照节点所分配的受荷面积再分配给各个节点;输出及分析设置:包括静态输出设置和界面输出设置,静态输出设置是在后台代码中预设节点位移、单元剪力输出命令流,为后续分析提供基本数据;界面输出设置是使用者在前端界面的对话框中进行目标记录类型选择、设定输出形式、选择保存路径、确定是否开启时间序列、选择节点、选择输出数据类型,程序会自动生成相应的tcl命令流;根据opensees程序的分析规则和参数设置要求,分别进行模态分析、重力分析、动力时程分析和pushover分析;分析调用:在输出tcl命令流的同时,直接在revit平台调用opensees进行有限元分析。
3.如权利要求2所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,截面设置中利用revit二次开发技术开发的数据提取算法自动提取所需信息,具体流程如下:(1)利用元素收集器filteredelementcollector、类别过滤器elementcategoryfilter和函数wherepasses过滤纵筋;(2)筛选属于同一个构件的纵向钢筋;(3)记录每个纵向钢筋的相对于截面的坐标,构件截面的x方向记录钢筋的y、z坐标,y方向记录钢筋的x、z坐标;(4)获取钢筋的直径,利用圆面积计算公式,计算每个纵向钢筋的横截面积;(5)编写混凝土纤维生成函数createconcretefiber(),将截面尺寸、截面x方向纤维数和截面y方向纤维数作为参数传入函数,计算出截面相应的混凝土纤维坐标;(6)将familysymbol id、钢筋材质id、钢筋尺寸、混凝土材质id等唯一属性组合成该截面的匹配识别码,防止重复获取不同构件的相同截面。4.如权利要求1所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤s2包括顶点位移时程曲线的展示和输出,实现步骤如下:(1)利用windows的file类读取opensees分析节点位移文件,筛选顶部目标节点的时程数据;(2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转化为double类型;(3)将时间数据存放到list<double>times泛型集合中,将位移数据存放到list<double>disp泛型集合中;(4)利用winform控件库中的chart控件绘制曲线,将times和disp作为坐标点拟合出曲线。5.如权利要求1所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤s2包括基底剪力时程曲线的展示和输出,实现步骤如下:(1)利用windows的file类读取opensees分析单元剪力数据文件,筛选底部单元的剪力的时程数据,每个单元的剪力数据为13列,第1列为时间,第2-7列为单元一端的x、y、z方向剪力和mx、my、my弯矩,第8-13列为另一端的x、y、z方向剪力和mx、my、mz弯矩;(2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转化为double类型;(3)将时间数据存放到list<double>times泛型集合中,将位移数据存放到list<double>force泛型集合中;(4)利用winform控件库中的chart控件绘制曲线,将times和force作为坐标点绘制出曲线。6.如权利要求1所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤s2包括pushover分析数据的展示和输出,实现步骤如下:(1)利用windows的file类读取opensees推覆分析顶点位移文件,其中第一列为荷载倍数、第二列为位移数据,筛选出上述两列数据;(2)将数据存放到string[]字符串数组中,利用字符串分割函数将数据切割出来并转
化为double类型;(3)将位移数据存放到list<double>disp泛型集合中,将荷载倍数数据存放到list<double>loads泛型集合中;(4)利用winform控件库中的chart控件绘制曲线,将disp和loads作为坐标点拟合出曲线。7.如权利要求1所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤s3中,实现地震损伤等级分析步骤如下:(1)数据提取:利用file类循环读取应变数据存入string[]字符串数组;(2)数据筛选:利用字符串分割函数,将目标数据分割出来并转化为double类型;(3)取最大值:计算应变时程数据绝对值的最大值;(4)判断损伤等级:通过基于下表判别准则的损伤等级判断函数,判断该最大值所在的损伤区间,即可得到该构件的损伤情况;(5)损伤数据展示:利用winform的datagridview控件,在地震损伤可视化展示模块展示损伤数据。8.如权利要求1所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤s4中,通过revit项目参数进行存储实现步骤如下:(1)设置共享参数文件地址、参数组名称以及参数类型等条件,创建共享参数文件;(2)读取共享参数文件,将共享参数与模型构件进行绑定,为指定的族添加项目参数;(3)最后为项目参数赋值,将分析数据存入对应的模型构件中,在revit中的属性栏界面查看任意构件的地震损伤结果数据。9.如权利要求1所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤s5中,通过三维视图对地震损伤状态进行展示实现步骤如下:(1)过滤族实例:利用元素收集器类、元素类别过滤器和wherepasses()函数过滤族实例familyinstance;(2)匹配构件:根据损伤分析的结果和revit中构件的族实例匹配;(3)查找族实例属性:筛选控制构件表面着色的属性;(4)修改颜色:根据损伤结果,修改构件颜色,以此展示构件损伤状态。10.如权利要求1所述的基于revit-opensees的钢筋混凝土框架结构抗震分析方法,其特征在于,步骤s5中,将颜色标注后的revit模型在revit漫游,或3dmax漫游,或fuzor漫游
中加载,用以在建筑结构模型内部进行虚拟漫游,以便观察建筑结构内各构件的损伤等级和分布,并查看相应构件的地震损伤信息。

技术总结
一种基于Revit-OpenSEES的钢筋混凝土框架结构抗震分析方法,属于土木工程技术领域。技术方案:从Revit的BIM模型向OpenSEES进行有限元模型转换,进行抗震分析设置和输出设置;对OpenSEES输出的分析数据进行分组、整理和提取,以图、表或文档等形式进行展示和输出;根据OpenSEES输出的混凝土和钢筋应变数据对结构进行地震损伤二次分析;将关键的结构地震损伤信息自动储存到Revit结构模型中;通过三维视图对地震损伤状态进行展示,或者通过VR软件进行虚拟漫游。有益效果:本发明实现了BIM常用软件与有限元分析程序的集成,实现了直接基于BIM模型的钢筋混凝土框架结构抗震分析和损伤评价,为结构抗震分析能够参与BIM的协同工作提供了一种解决方案。提供了一种解决方案。提供了一种解决方案。


技术研发人员:陈强 王丰
受保护的技术使用者:大连民族大学
技术研发日:2022.03.22
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-4761.html

最新回复(0)