基于Python的建筑物结构设计自动建模研究

known 发布于 2025-08-25 阅读(376)

中图分类号:TP311;TU318 文献标识码:A 文章编号:2096-4706(2025)07-0125-04

Abstract:Structural designhasadecisive impact throughout theentire lifecycleofabuilding.With thedevelopmentof intelligentconstructiontechnology,secondarydevelopmentbasedon traditionalBIMsoftwarecanachieveautomatic modeling functionsforintellgentdesign,signifcantlyimprovingdesignefiencyAccordingtothesecondarydevelopmentintefaceof Yingjianke structural designsoftware v6.0.0,Pyhoncode design is carredoutbyusingthe automatic extractiontaskanddata extraction functionofPythonlanguage.Andtheactual model parametersare inputtogeneratedesignexamples,verifying the progressivenessandsuperiorityofthedeveloped program.Theprogramissuitableforthe applicationofdesignonmuli-storey frame structures,frame+shear wall structures and steel structures with high complexity.

Keywords: building structure design; automatic modeling; Python

0 引言

随着城市化进程的加快,越来越多的建筑物被建造,而建筑结构作为建筑物主体部分,其高效和准确的设计是保证建筑物安全和稳定的重中之重。与此同时,BIM技术的发展为建筑结构的设计提供了全新的手段[11,盈建科结构设计软件是全国领先的建筑结构设计软件平台,其公司专注于建筑结构设计和BIM相关软件产品的开发和技术服务,其主要产品YJK建筑结构设计系统软件在行业内具有很高的知名度。在实际应用中,一个工程项目中往往需要多个BIM软件的协同工作,设计周期较长,而如果能实现设计软件的自动建模功能并传递建筑模型的参数就可以提高设计效率[2]。盈建科结构设计软件中的Python 二次开发接口可满足与自动建模功能相关的研究需要[3-4],也可在不同软件间进行代码传递。在Python 自动建模程序设计完成后,将建筑物参数输入到所开发的Python程序原始代码中,即可自动提取数据与任务并实现自动建模,此过程验证了本文所开发程序可提高BIM软件的设计效率和准确性。

1Python自动建模程序编码设计

Python因其强大的库和框架支持,被广泛应用于各种领域。建筑工程项目可使用Python进行结构设计的自动建模和分析,如有限元分析(FEA)的前处理和后处理[5-7]。要实现建筑物结构设计的自动建模功能,前提需要设计出具有普遍适用性的Python程序原始代码,随后可将工程实例的参数输入到原始代码中来完成结构设计的自动建模过程。所以本节在盈建科软件v6.0.0版本的基础上,利用Python语言的数据提取与分析能力并结合函数式与过程式Python编程方法[8],进行了代码设计并运行一个实例,Python编码设计整体流程如图1所示。

1. 1 前期环境搭建

在进行代码编程前,需要对最优的开发环境进行搭建,通过对Python计算生态的学习,发现利用pip工具安装第三方库基本NumPy库可用来存储和处理大型矩阵,处理数据时比Python自身的嵌套列表(NestedListStructure)结构要高效的多,因此本文选择了NumPy库作为第三方库。

图1Python编码设计流程

1.2节点、网格的生成及构件、荷载的定义

在Python中,可以使用过程式、函数式、生态式和递归计算的编程方法进行编码设计,又因为建筑物结构的设计需要有整体结构的可迭代性、单独构件可编辑性,所以本文选用了从创建节点和网格到创建构件及其荷载的过程式编程方法以及使用函数定义对建筑物各部分进行编程的函数式编程方法。首先,导入了与盈建科软件交互所需的YJK-pyYJKS程序,然后以过程式编程方法为基础,利用node_generate函数,设置了X和Y方向上的跨度(xspans和yspans)以及一个标准层(bzc)来生成结构节点,并创建了一个二维列表(nodelist),代表结构中节点的布局。引入grid_generate函数,并将已有的节点列表和方向参数(direct x 和direct_y)结合,生成了一个网格列表(GridList),代表节点之间的连接,即梁和柱的位置。

对于构件的定义和荷载的定义方法,通常情况下可通过输入参数(如截面尺寸、材料属性等)来定义构件,这种方法为建筑物结构模型的设计提供了高度的灵活性和可定制性。使用def_member函数,引入参数构件类型名name以及不定数量的参数*params来定义构件,并调用set方法设置使用者所输入的构件参数。对于荷载的定义,利用def_load函数来对柱荷载、梁荷载、风荷载以及地震作用等进行定义并创建定义对象,同时调用setElementKind方法来设置荷载类型和setP方法来设置荷载参数,得到了如下代码,这种创建构件及荷载的函数编程方法可快速的增加和削减构件及荷载的数量与种类。

1.3主体结构的代码设计

进行主体结构建模时,本文对Python中函数的应用条件和实用性进行分析,使用了两种自动建模方法。

1.3.1 方法一

先设定了自动建模起点和开间的工程参数输入框,并引入set.EX、set.EY和set.EA函数来设置柱子偏移量和梁偏移量,以便使用者输入工程参数。在相应的参数输入框内输入实际模型的数据后,根据开间产生节点,在节点处自动布置相应类别的柱子,同时选取特定目标柱子自动进行偏移等编辑。柱子信息编辑后,自动布置梁并进行选定梁的偏移,后续主体结构建模布置方法相同。部分代表性代码如下:

originp nodelist node_generate(xspans,yspans,bzc) columns, column_map Σ= column_arrange(nodelist,

defcol) target_node nodelist[0][0] if target_node in column_map: target_column column_map[target_node] target_column.setEX(offset_x);target_column.

setEY(offset_y) gridlist=grid_generate(nodelist,1,0) beam_list=beam_arrange(gridlist,defbeam3) beam_to_modify beam_list[0] beam_to_modify.setEA(beam_ea_offset) load_arrange(beam_list,beamload)

load_arrange(beam_list,windload)

1.3.2 方法二

使用setEZ函数来进行节点的上下偏移来实现斜杆的生成。先定义X向开间、Y向开间和节点偏移量的实际工程参数输入框,由实际参数生成节点列表NodeList并布置柱子,此方法柱子和梁分开布置。对于柱子的布置,根据X、Y向开间产生节点并设置偏移量,对于梁的布置还需生成横向网格,并根据实际模型情况在梁的两端节点处进行上下偏移来产生不同的斜杆。部分代表性代码如下:

originpos=[,];xspans=[,];yspans=[,]

nodelist=node_generate(xspans,yspans,bzc) gridlist=grid_generate(nodelist,0,1) E Z l= ;EZ2= beam_list=beam_arrange(gridlist,defbeam,beam_ ea_offset,EZ1,E2)

两种编程方法交替使用,根据模型构件放置难度灵活变换编程方法,以实现由代码完成自动建模的效率最大化。

2Python自动建模应用实例

在前文代码编写完成的基础上,可输入一个实际工程的建筑物结构参数,如表1所示。

表1实际工程项目局部主要参数

运行输入实际工程参数后的Python代码,自动生成了模型并对上部结构模型进行有限元分析计算,计算各构件内力,得出图2和图3的设计结果。

图2建筑结构模型自动创建应用实例

图2中,通过Python代码自动建模生成的模型各构件参数(截面尺寸、长度和数量等)、位置坐标以及各构件上的荷载信息与标准BIM模型设计规定的各类参数相同。

图3Python代码自动建模生成的结构模型计算结果由图3(a)(b)分析可得,通过Python代码导

入到盈建科软件中创建的建筑物结构上部结构模型内力计算结果相比于标准模型,误差结果均满足IFC标准。同时,自动建模生成的结构模型在不同位置上和不同荷载下的内力变化规律均与标准建筑物结构模型内力变化规律相同,因此自动建模生成的结构模型计算结果误差可以通过修改及优化进行减小甚至消除。

最后,讨论通过本文的自动建模程序与通过手动进行模型创建的对比,发现在建模时自动建模功能具有如表2和表3的实际使用便捷特点[9-10]。

表2本文的自动建模程序与手动建模对比表3本文的自动建模程序创新点

3结论

文章先分析了结构设计在建筑物建造全生命周期中的重要意义,却发现传统结构设计方式的低效率和粗放性不能满足当今建筑物结构的设计要求。因此本文结合BIM技术,对基于Python的建筑物结构设计自动建模进行研究,并以盈建科结构设计软件v6.0.0版本的二次开发接口为依据,在前期准备工作及搭建环境完毕后,便进行Python代码设计,并在输入实际建筑物模型参数后运行了一个实例。分析实例计算结果,验证了本文的自动建模程序在结构设计中可满足IFC标准,并且自动建模功能适合用于复杂程度较高的多层框架结构、框架 + 剪力墙结构以及钢结构的BIM建模中去。又因本文的自动建模程序相对于手动建模具有数据库丰富、修改优化简单、建筑信息模型传递的数据完整以及信息传递错误率低等特点,所以基于Python的建筑物结构设计自动建模程序具有较大的应用前景。

参考文献:

[1]付斌,严洋,柳子通,等.基于BIM技术的数字化结构设计与数字建造应用一一以鄂州花湖机场转运中心工程为例[J.建筑结构,2023,53(13):135-141.

[2]王勇,张建平,王鹏翊,等.建筑结构设计中的模型自动转化方法[J].建筑科学与工程学报,2012,29(4):53-58.

[3]王开,罗天靖,李辉,等.基于BIM技术的桥梁下部结构参数化建模与协同设计应用[J].铁道标准设计,2023,67(10):134-140.

[4]常明媛,朱劭骏,陈韬,等.模块化钢结构建筑平面布局方案智能生成式设计方法[J].建筑钢结构进展,2024,26(2): 8 3 - 8 9 + 1 0 3

[5]葛金刚,刘晗晗.基于PYTHON的多软件模型转换程序的开发[J].工业建筑,2014,44(S1):324-326.

[6]吴明杰,刘珍,张滕滕,等.Python编程语言在乡村民居建筑设计中应用探索[J].工业建筑,2023,53(S2):7-12.

[7]刘红波,杨智锋,周婷,等.基于Revit二次开发与深度学习的钢框架节点智能审图[J].建筑结构学报,2024,45(7):43-55.

[8]陈菁,余芳强,易思坤,等.基于BIM的施工深化自动出图系统设计与开发[J].图学学报,2023,44(4):801-809.

[9]冯奕天,朱静怡,廖文杰,等.生成式智能结构设计在建筑设计投标的应用案例[J].建筑结构,2024,54(20):98-103.

[10]曾勃,马智亮,李帅勇,等.智能建造数字化平台相关技术研究进展[J/OL].科技导报,2024:1-11[2024-11-07].http://kns.cnki.net/kcms/detail/11.1421.N.20241106.1635.002.html.

作者简介:褚福临(2004一),男,汉族,山东枣庄人,本科在读,研究方向:智能建造;郭猛(1989一),男,汉族,河北保定人,软件工程师,本科,研究方向:智能建造;白玉星(1973一),男,汉族,山西和顺人,土木系主任,二级学科责任教授,硕士,研究方向:钢结构设计理论、智能建造;郁文红(1966一),男,汉族,浙江宁波人,副教授,博士,研究方向:智能建造。

标签:  建模 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor