AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


文本到BIM生成:使用基于大型语言模型的多智能体生成建筑信息模型框架
发布日期:2024-08-27 16:33:23 浏览次数: 1673


Changyu Du1, Sebastian Esser2, Stavros Nousias3, and André Borrmann4慕尼黑工业大学计算建模与仿真主席,博士研究生。80333,德国。电子邮件:changyu.du@tum.de2位博士后研究员,慕尼黑工业大学计算建模和仿真主席团。慕尼黑80333,德国。电子邮件:sebastian.esser@tum.de慕尼黑工业大学计算建模与仿真主席团的博士后研究员。慕尼黑80333,德国。邮箱:stavros.nousias@tum.de慕尼黑工业大学计算建模与仿真主席教授,德国慕尼黑80333。邮箱andre.borrmann@tum.de

摘要


传统的BIM创作过程通常要求设计师掌握复杂和繁琐的建模命令,以便在BIM创作工具中实现他们的设计意图。这种额外的认知负担复杂化了设计过程,阻碍了建筑工程行业对BIM和基于模型的设计的采用。为了更直观地表达设计意图,我们提出了Text2BIM,这是一个基于LLM的多智能体框架,可以从自然语言指令生成3D建筑模型该框架协调多个LLM智能体进行协作和推理,将文本用户输入转换为调用BIM创作工具API的命令代码,从而在软件中直接生成具有内部布局、外部包络和语义信息的可编辑BIM模型此外,引入了基于规则的模型检查器到智能体工作流程中,利用预定义的领域知识指导LLM智能体解决生成模型中的问题,并迭代改进模型质量。进行了大量实验来比较和分析在提出的框架下三种不同LLM的性能。评估结果表明,我们的方法可以有效地生成与用户输入指定的抽象概念一致的高质量、结构合理的建筑模型。最后,开发了一个交互式软件原型,将该框架集成到BIM设计软件Vectorworks中,展示了通过聊天进行建模的潜力


目录


1简介


1.1新颖性和贡献


2相关工作


2.1生成式人工智能在3D建筑设计中的应用


2.2基于LLM的智能体程序


2.3基于BIM的模型检查


2.4总结和确定的研究空白


3方法论


3.1工具套件


3.2提示增强和建筑计划生成


3.3BIM模型生成的编码


3.4模型质量评估和迭代改进


4原型实施


5实验和评估


6讨论与限制条件


7结论


8数据可用性声明


9致谢


10附加资料


附录 I.工具集文档  

附录 II.规则集文档


附录 III.生成模型的可视化


参考文献


1 简介


在过去几十年中,不断出现各种数字表示和工作流程以表示。


建筑环境。建筑信息模型(BIM)的概念涵盖了以几何和语义信息反映建筑资产的整体方法,这些信息可以在建筑的整个生命周期中利用,并在专用表示中与不同的项目利益相关者共享(Borrmann等,2018年)。现代BIM编制软件涵盖了跨多个学科的设计要求。这种集成方法导致了软件中功能和工具的激增,使用户界面变得越来越复杂。设计师经常面临陡峭的学习曲线,并需要进行广泛的培训,以将设计意图转化为复杂的命令流程,在软件中创建建筑模型(Du等人,2024年)。


近年来,生成式人工智能(AI)在建筑设计中的应用减轻了额外的认知负担,增强了设计过程的创造潜力和效率。当前的研究和工业应用主要集中在生成2D图像或简单的3D体积(Li等,2024a),利用变分自动编码器(VAEs)、生成对抗网络(GANs)和扩散模型来创建2D建筑平面图(Luo和Huang,2022;Shabani等,2023;Wang等,2021)、建筑渲染图(Stigsen等,2023;Chen等,2023;Graphisoft,2024)、建筑立面设计(Sun等,2022;Zhang等,2022)、或初步的3D概念形式(Zhuang等,2023;Pouliou等,2023;Tono和Fischer,2022)。最近的研究提出使用大型语言模型(LLMs)自动生成墙面细节(Jang等,2024),但更复杂的3D建筑模型生成尚未被开发。


在游戏开发和虚拟现实等其他领域,像DreamFusion(Poole等人,2022年)和Magic3D(Lin等人,2023年)这样的先进的3D生成模型可以直接从文本描述中生成具有丰富纹理的复杂3D模型,使设计师能够用自然语言表达设计意图,而无需繁琐的建模命令。然而,这些文本转3D方法生成的输出通常基于体素、点云、网格或类似神经辐射场(NeRFs)(Mildenhall等人,2021年)的隐式表示,这些方法仅包含外部表面的几何数据,无法模拟3D物体可能的内部内容,也不包括任何语义信息。


这些纯几何3D形状与本地BIM模型之间的差异使得将它们整合到基于BIM的建筑设计工作流程中变得具有挑战性。设计师无法直接在BIM作者软件中修改和编辑生成的内容,由于缺乏语义信息,这些模型也难以应用于下游的建筑模拟、分析和维护任务中。


1.1 新颖性和贡献


为了弥合这些差距,我们提出了Text2BIM,它将自然语言描述转换为具有外部包围、内部布局和语义信息的3D建筑模型。通过将建筑模型表示为调用BIM作者软件的应用程序接口(API)的命令式代码脚本,我们使多个大型语言模型(LLM)智能体能够合作并自主生成可执行代码,最终产生能够直接在软件中进一步编辑的本地BIM模型。提出的框架利用特定提示指导LLMs生成建筑上合理的结果,并自动评估生成的BIM模型符合特定领域建筑规则的程度。它允许LLMs通过多个反馈循环迭代改进模型质量,融合基于规则的系统中的领域知识。设计了各种复杂测试案例来全面评估框架的生成能力和结果的质量。我们还实现了一个交互式软件原型,将提出的框架集成到BIM作者工具Vectorworks中,展示了在设计过程中通过对话进行建模的新可能性。


本文的范围仅限于在早期设计阶段生成常规建筑模型。生成的模型仅包括必要的建筑构件,如室内和室外墙壁、楼板、屋顶、门窗,以及代表性的语义信息,如楼层、空间和材料定义我们的目标是从自然语言描述生成具有一定模型质量的合理布局的3D建筑,为设计师提供一个参考,以进一步在BIM创作软件中完善设计。这种方法旨在部分解放设计师免受繁琐和重复的建模命令,更直观地表达设计意图。尽管如此,用户可以随时在BIM创作工具中修改生成的模型,以确保自动化水平和工程自主权之间的平衡。


2 相关工作


2.1 生成式人工智能在3D建筑设计中的应用


3D建筑设计领域中生成式人工智能的应用正逐渐成为研究热点。关键在于构建适当的数据表示,用于现有设计数据、经验知识和物理原理,然后训练相应的算法以智能生成新设计(Liao等,2024年)。de Miguel Rodríguez等人(2020年)使用连接向量表示不同的3D类似网格建筑几何形状。通过使用这些数据训练变分自动编码器(VAE),可以通过在学习的分布中重新构建插值位置来生成更多建筑形状。Vitruvio(Tono和Fischer,2022年)使用占用场描述建筑形状,通过为3D空间中的每个点分配二进制值来指示该点是否被对象占据。他们利用修改后的占用网络(Mescheder等,2019年)来学习这种表示,从而能够从单个透视草图重建出一个3D可打印的建筑网格。


其他研究人员正在使用GAN来生成概念性的3D建筑,用于早期设计阶段。Pouliou等人(2023)提出使用CPCGAN(Yang等人,2021)根据特定的站点规则生成建筑几何的点云表示。Ennemoser和Mayrhofer-Hufnagl(2023)将3D体素解码为2D图像,训练一个DCGAN(Radford等人,2015),然后使用有符号距离场(SDF)(Oleynikova等人,2016)将生成的图像转换回体素。尽管他们的方法可以部分重建建筑内部空间的体素模型,但所生成的结果仍然存在几何不一致性和不准确性等问题,使其远未达到实际建筑模型的水平。


目前,基于纯几何表示的3D生成算法的研究仍然局限于生成概念性建筑形式,并尚未能够产生具有高发展水平(LOD)的复杂3D建筑模型,这些模型表现出内外一致的几何特征。此外,这些纯数据驱动方法生成的结果很难用基于文本的建筑规则来约束。需要探索更好的数据表示方法。


快速发展的生成式人工智能技术,如扩散模型和大型语言模型(LLMs),在建筑设计领域展现出显著潜力。扩散模型的应用仍然主要集中在基于2D图像的任务上,例如从文本生成建筑渲染图(Li等,2024b)和替换GAN以产生更健壮的结构设计(He等,2023)。另一方面,LLMs的应用主要集中在使用自然语言从BIM模型中检索数据(Zheng和Fischer,2023)以及增强BIM设计软件中的人机交互(Du等,2024b;Fernandes等,2024)。然而,利用LLMs生成3D建筑模型的概念尚未被探索。其中一个关键挑战是将3D模型表示为一维文本数据,以便LLMs可以使用(Liao等,2024)。这种文本表示必须简明地捕捉模型的特征,避免传统模型序列化文件中典型的过于详细的细粒度造成的冗余性。最近的一项研究(Jang等,2024)提出将BIM模型转换为XML格式,然后使用LLM处理这种结构化文本以添加墙体细节。最后,修改后的XML被转换回BIM模型,以实现自动墙体细节设计。与他们的方法不同,我们提议将BIM模型表示为命令式代码。通过在BIM设计工具中构建和调用高级建模API,我们旨在使用尽可能简洁和灵活的文本格式来表达模型的几何和语义特征,同时最大限度地发挥LLMs强大的代码生成能力带来的好处。


2.2 基于LLM的智能体程序


基于大型语言模型的智能体人是指利用先进语言模型执行涉及感知、决策和行动的任务的自主系统(王等,2024年)。这些系统通常配备了与外部环境互动的LLM工具,以及保留思维过程、观察和行动记录的记忆模块。基于LLM的智能体人将LLM用作“大脑”,利用其强大的上下文学习(董等,2024年)能力,从各种来源综合信息,并通过语言推理部署适当的工具以应对不同情景,从而使系统能像人类一样表现、规划和执行任务(杜等,2024b年)。这些智能体人可以独立操作,也可以在多智能体系统中运行,在这里它们合作、交流,并在不同角色中专业化,以利用集体智能解决更具动态性和复杂性的问题(郭等,2024年)。


基于LLM的多智能体系统在软件开发(Hong等,2023年)和游戏领域中具有越来越广泛的应用。


2024年,像Park等人(2023年)在虚拟现实 (VR) (Gouravajhala等人,2024年) 和社会模拟 (Park等人,2023年) 这样的领域已经广泛使用大型语言模型 (LLM),然而它们在三维设计中的应用仍处于探索阶段。3D-GPT (Sun等人,2024年) 框架将三维建模任务分解为多个步骤,协调三个LLM智能体以类似于人类团队的方式,在Blender中创建与文本描述相匹配的三维资产。SceneCraft (Hu等人,2024年) 利用多个LLM智能体将文本描述转换为可在Blender中执行的Python脚本,自动渲染适用于游戏和电影的三维场景。该系统利用场景图来模拟资产之间的空间关系,并使用视觉语言模型来迭代地优化场景。在建筑领域,与上述研究类似,Çelen等人 (2024年) 使多个LLM智能体能够根据用户指令创建场景图,然后使用回溯算法放置家具,最终生成室内设计场景。Mehta等人 (2024年) 提出了一个交互式框架,允许人类建筑师与LLM智能体合作,使用自然语言指令构建结构。智能体可以放置方块,寻求澄清,并在类似Minecraft的三维模拟环境中集成人类反馈。Du等人 (2024b) 将LLM智能体集成到BIM编写软件中,通过检索增强生成 (RAG) (Lewis等人,2020年) 回答软件使用问题,并根据自然语言指令执行简单的建模任务。总之,在我们领域的现有文献中,仅探讨了LLM智能体在简单建模背景下的应用。目前缺乏研究探索多智能体系统生成复杂的三维BIM模型的潜力。


2.3 基于BIM的模型检查


随着BIM概念在建筑资产设计阶段的持续采用,丰富的信息基础为几个下游应用提供了复杂的基础。产业基础类(IFC)(ISO 2024)数据模型已经得到了很好的建立,用于交换建筑资产的数字表示,包括几何和语义信息。这些表示完全适合自动执行有关所设想设计与各种规则和指南的符合性的检查。这些方法在过去几年中引起了行业内不同利益相关者的日益关注。Preidel和Borrmann(2018)已经描述了机会和相关挑战的全面概述。Eastman等人(2009)提出了一种基于BIM模型的自动代码符合性检查的总体方法。他们将整个检查过程分为四个阶段:解释规则以创建机器可读规则、建筑模型准备与高级分析、规则检查执行以及详细缺陷和问题的报告。


模型应遵守的规则在复杂性上可能有所不同。为了解决这一挑战,Solihin和Eastman(2015)提出了一个规则分类系统,包括四个不同级别。分配给第1类的规则要求提供一个或少量明确数据。此类规则的典型示例是检查为模型中的每个元素分配的专用属性。第2类规则的特点是推导简单属性值。这样的计算可以包括根据几何表示进行的简单算术或三角函数计算,或基于语义信息的聚合。第3类规则需要扩展的数据结构和处理。这些规则需要对语义和几何数据进行全面处理,并评估中间计算。此类规则的突出示例可以在与防火安全法规相关的评估领域找到。这些规则经常涉及对不同部件的材料参数、几何特征和路径搜索算法进行评估,以识别需要检查的相关空间和走廊。第4类考虑的是不能通过规定特征评估的规则,而是需要对提取的信息进行整体评估。在大多数情况下,这些规则考虑了多个目标,这些目标在顺序工作流中很难(甚至不可能)表达。因此,预计软件应用程序支持用户提取和识别相关模型信息,但最终不会在检查运行结束时提供简单的通过/不通过声明。


除了对规则复杂性的调查外,其他研究者还关注人类可读的指南和规定的翻译(Zhang和El-Gohary 2017; Zhou等,2022年; Fuchs等,2022年),并提出了不同的方法来制定机器可读表示中的规则(Sydora和Stroulia 2020; Häußler等,2021年)。作为最新发展,由buildingSMART International开发和维护的信息交付规范(IDS)标准使得能够以一种统一且与供应商无关的方式指定针对基本属性检查的规则(Tomczak等,2022年)。然而,在当前的开发阶段,它仅支持语义信息,但缺乏指定全面几何条件的选项。Nuyts等人(2024年)研究了与当前合规检查技术相关的不同方法,并讨论了优缺点。作为已提到的方法的扩展,他们还考虑了与相关的技术,这些技术早在(Pauwels等,2011年)提出。


2.4  总结和确定的研究空白


许多研究已经探讨了利用生成AI来创建概念建筑的几何表示。然而,这些进展尚未整合到基于BIM的建筑设计领域中。根据进行的文献综述,我们的方法似乎是第一个利用协作LLM智能体根据自然语言指令生成具有相对较高LOD的BIM模型,通过采用规则驱动的模型检查来确保合规性和一致性。


图1.基于LLM的多智能体框架及示例用户指令。


3 方法论


我们提出了基于LLM的多Agent框架Text2BIM,其中四个LLM智能体扮演不同角色,并合作将自然语言指令转换为命令代码,从而在BIM设计软件中生成建筑模型。核心思想是使用一系列自定义高级工具函数封装软件的基础建模API。通过使用提示工程技术指导LLMs在生成的代码中调用这些函数,我们可以通过简洁高效的文本表示构建本地BIM模型。


整体框架及示例用户输入如图1所示。为实现上述概念核心,我们利用四个基于LLM的智能体,具有专门的任务和技能,它们通过文本相互交互。


产品负责人:完善和改进用户说明,并生成详细的需求文档。


建筑设计师:根据建筑知识制定文本建筑计划。


程序员:分析需求并编写建模代码。


审阅者:提供代码优化建议,以解决模型中发现的问题。


由于用户输入通常简短且开放式的特点,我们首先设计了一个扮演产品负责人角色的LLM智能体以扩展和完善用户指令。这样可以确保指令包含足够的信息,以指导下游的程序员智能体在其代码中调用适当的工具函数。产品负责人智能体对原始指令的详细阐述和描述涉及多个信息源。


首先,它从自定义工具集中读取信息,该工具集包含建模功能和相应的文本描述。这使得智能体能够了解用户指令中调用相应函数所需的输入参数是否可用,或者是否需要额外的信息。


其次,它借助建筑师智能体的知识。当产品负责人认为需要更多的建筑背景或建筑计划时,特别是在建筑要求复杂的情况下,可以选择与建筑师协商。建筑师智能体被设计为以结构化文本格式生成建筑计划,其中包含根据特定建筑规则的坐标和尺寸,结合产品负责人传达的用户指令。


原始用户说明经产品负责人增强后,成为一份详细的需求文档,指导程序员智能体人从工具集中组合和调用适当的功能,以构建用户所期望的建筑模型。生成的代码由自定义Python解释器进行语法检查。如果在代码执行过程中出现异常,程序员将自动收到提示进行自我反思,并迭代改进代码直至错误解决。


成功生成的建筑模型被自动导出为基于IFC的表示形式,然后发送给下游模型检查器进行自动质量评估。我们在检查器中定制了一系列领域特定规则,从各种角度全面评估模型质量,包括几何分析、碰撞检测、信息验证等。检查结果最终以BIM协作格式(BCF)导出,其中包含模型中发现的问题描述以及相关建筑构件GUID。


在这个阶段,引入了一个评审员智能体来解释BCF文件并提出优化模型的建议。评审员被设计为通过阅读BCF文件中记录的信息来了解模型中的当前问题。然后,它通过将这些信息与程序员先前生成的代码和工具函数文档结合起来,提出解决方案。这涉及指导和提示程序员智能体使用适当的工具函数来修复代码,以解决模型中存在的问题。这个涉及评审员、程序员和模型检查器的模型质量优化循环将多次迭代,直到检查器报告没有错误或智能体无法自主解决问题。


为了确保智能体人在循环中可以感知到全面的上下文信息,我们实现了一个局部循环内存模块,用于存储程序员和评审人在优化过程中的历史互动。此外,还设计了一个由程序员和产品所有者共享的全局内存模块,用于存储用户的历史聊天记录和相应的代码信息。这样可以让智能体人在与人类对话时持续获得上下文信息,使整个框架能够基于人类反馈不断改进和完善回应。通过这些多个优化循环,我们可以迭代地引导LLM智能体人使用领域知识生成符合特定设计质量、用户意图和工程需求的BIM模型。


图2. BIM设计软件Vectorworks中使用最频繁的前50个命令(基于收集的大规模日志)datasets)。


在接下来的小节中,我们将详细描述所提出框架的几个关键模块。


3.1 工具套件


手动定义的工具功能本质上可以被视为向LLMs公开的高级、简洁的API接口。由于BIM建模软件的原生API通常是细粒度且低级的,每个工具本质上封装了结合不同可调用API函数以实现其功能的逻辑。这不仅避免了低级API调用的繁琐和复杂性,还结合了特定的设计规则和工程逻辑,确保工具处理的建模任务的精度(Du等人,2024b)。然而,设计通用的工具功能以有效应对各种建筑场景是一个重大挑战。


为了解决这个困难,我们采用定量和定性分析方法来确定要实现的工具功能。我们开始调查用户日志文件,以了解人类设计师在与软件互动时最常使用哪些命令(工具)。我们利用了来自设计软件Vectorworks的1,000名匿名全球用户的一天日志数据,涵盖了约7种语言中大约2,500万条记录。在清洗和过滤原始数据后(杜等)。2024a), 提取出前50个最常用的命令,如图2所示。


由于人类与软件交互方式和LLM智能体通过代码交互方式之间存在显著差异,直接由鼠标操作触发的命令,如拖动、微调和调整大小,占据了日志数据的很大比例。此外,由于数据完全匿名,我们无法确定用户的学科领域或使用场景。然而,仍然可以从这个庞大数据集中观察到建模过程中的一些常见步骤,比如删除、移动、复制、设置工作层等。我们排除了鼠标控制的命令,并在图表中用橙色突出显示了可以通过API实现的一般建模命令,以供为智能体构建工具功能时参考。


另一方面,我们分析了Vectorworks中内置的图形化编程工具Marionette(类似于Dynamo/Grasshopper)。事实上,这些视觉脚本平台提供的节点(电池)通常是针对不同场景定制的基础API的封装版本,为设计师提供了更高级别和更直观的编程接口。软件供应商根据功能将默认节点进行分类,使设计师更容易理解和使用。这些动机与我们的类似。考虑到我们创建常规BIM模型的用例,我们主要参考"BIM"类别下的节点。


最后,我们还考虑了建筑师在典型建筑模型过程中所需的基本组件和步骤,如创建楼板和墙壁,设置材料和高程等。通过综合这三个视角的信息,我们为智能体设计了一组26个工具功能,如附录I中的表4-6所示,涵盖了BIM创作的重要方面,如几何建模和语义丰富化。由于LLM智能体主要通过其描述来理解和使用工具,我们使用结构化文本格式清晰定义了每个功能的功能、使用场景、输入参数和返回参数。


3.2  提示增强和建筑计划生成


原始用户提示?需要扩展和增强,以得到与建筑设计相一致的更加具体的表述。因此,在这个阶段,产品负责人和架构师的任务至关重要,因为它们决定了最终生成的模型的基本布局和质量基线。为建筑架构师设计的提示模板????ℎ如图3所示。在这个模板中,我们首先定义了智能体人的角色和任务,并严格指定输出格式和内容,以满足下游编程要求。然后,我们将9条基本建筑规则和原则纳入提示中(例如,构件配置,室内分区,建筑开口布局等),指导LLM生成合理的建筑设计和结构集成的建筑平面图。


此外,我们采用了少样本学习方法(Brown等,2020年)来为LLM提供一个示例对话,以更好地引导其产生稳健的输出。建筑师提示模板中的用户输入?'是产品所有者提供的原始用户指令?的释义。这是因为我们使用函数调用机制将两个智能体连接起来:建筑设计师师被包装在函数层?中,与用户连接。


图3.建筑师智能体提示模板。带有“«»”占位符的部分表示可以插入模板的动态内容。


任务定义为输入参数,建筑计划为输出。描述记录了建筑师的职责,这个功能是产品负责人唯一可以调用的工具。需要注意的是,这里用于调用功能的工具与我们设计用于代码生成任务的工具集无关。文本建筑计划的生成可以通过方程式1总结如下:


大多数主流的LLM已经被微调以支持函数调用,使它们能够返回结构化的JSON格式响应,其中包含函数名称和要执行的参数值(OpenAI 2024b; Mistral 2024a; Gemini 2024)。函数调用的基本工作流程如下。当产品负责人收到用户指令时,它会根据提示上下文推断是否需要调用外部函数来完成任务。如果是这样,它会生成一个JSON对象,明确指示函数名称(Architect)和参数(用户需求的释义)。我们会在本地自动解释JSON并调用Architect函数。接收到任务后,Architect生成相应的建筑计划。然后将这些信息连接到产品负责人的提示作为额外的上下文,指导其重新生成最终的标准文本响应。这种设计的核心目标是使产品负责人能够根据任务的复杂性灵活决定是否咨询Architect,从而使两个智能体之间的交互更加智能和高效。这样,产品负责人可以独立处理简单任务,并利用Architect的专业知识处理复杂任务,优化整体工作流程。


产品负责人的提示模板???如图4所示。 产品负责人的角色是综合各种上下文信息,包括用户的原始指令?,来自建筑师的建筑计划,工具集中的功能使用描述?,全局记忆模块中与用户的以前聊天历史Φ??????,以及提示模板中的输出规范,以创建详细和全面的需求文档???ℎ?????。 此文档用作下游代码生成任务的指南。 我们在提示中使用了思维链(COT)技术(Wei等,2024年),该技术要求LLM逐步推理,将建模任务分解为利用不同工具功能的子任务和子逻辑。 因此,用户提示增强的整个过程可以用以下方程式2表示:


3.3  BIM模型生成的编码


增强的用户需求将被输入到程序员的提示模板???中,如图5所示。程序员智能体需要编写简洁的Python代码,仅利用来自

Fig. 4.产品负责人智能体的提示模板。带有“«»”占位符的部分表示可以插入模板的动态内容。

图5.程序员智能体的提示模板。用“«»”括起的占位符表示可以插入模板的动态内容。


利用工具集和内置的标准Python库来完成产品所有者指定的任务。生成Python代码的优势在于LLM可以灵活地结合和调用不同工具函数,使用各种算法逻辑。这比最近的一项工作中基于JSON的函数调用更加强大(Fernandes等人,2024年),后者受限于按顺序执行单个函数,并且无法满足诸如建模等任务的复杂逻辑要求。鉴于增强的要求包含丰富的上下文信息,我们选择利用智能体的零样本学习能力(Wei等人,2022年),而无需提供示例。这种方法旨在使LLM能够灵活地探索根据不同任务需求量身定制的不同代码逻辑,而不是受限于刚性示例,从而最大限度地利用其预训练知识。方程式3说明了代码生成的过程,其中我们将工具信息表示为?和与产品相关的历史聊天记录。


Owner as Φ??????:主人即Φ全局meta。


自定义的Python解释器将在受控环境中执行生成的代码。我们使用抽象语法树(AST)来表示代码,遍历树节点以评估每个Python表达式。这种方法允许我们定制可用的语法和可调用函数,同时实现更精确的错误处理。解释器使用状态字典来存储和跟踪代码执行的结果,包括导入的包、定义的函数对象以及变量名和它们的值。这为程序员智能体的记忆功能奠定了技术基础 - 语言模型可以利用和访问在先前对话中定义的变量和函数,或直接继续以前的代码。解释器仍然可以通过检索状态字典正确执行代码,确保整个会话期间在代码层面上保持综合上下文。我们扩展了先前的工作(Du等人,2024b)以允许解释器支持更多数据类型和高级语法,同时限制潜在问题的语法,如while语句。此外,解释器只能评估工具集和Python内置库中的函数(除了在生成的代码中自定义定义的函数),防止调用任意第三方包。


如果在代码评估过程中解释器抛出异常?,则解决此错误将被视为程序员的新任务输入。 导致异常的代码将被用作新的历史信息。 错误和代码将重新输入到提示模板 ??? 中,供程序员重新生成新代码。 如方程式 3 所示,这种自我反思修改循环将迭代直到新生成的 ?????+1 不再包含异常 ??+1 为止。 如果在 3 次尝试内问题未解决,我们将中断流程以寻求人工反馈。


?????+1 ← 最大化对数似然估计器 (概率(观测值,参数, ?????))其中 ? ∈ [0, 3)(4)在这个自我反思的过程中,不会对任何记忆模块进行更新;只有



图6.评审人员智能体的提示模板。带有“«»”占位符的部分表示可以插入模板中的动态内容。


状态字典将被更新。在每次迭代中,程序员可以看到的唯一历史信息是在上一步中失败的代码。我们只存储程序员在记忆模块中没有错误的回应。


3.4  模型质量评估和迭代改进


成功执行的代码将在BIM创作软件中生成建筑模型。尽管我们在早期阶段使用了大量的提示工程来指导LLMs生成空间和几何合理的结果,但这个过程固有的随机性可能仍然会导致生成的建筑存在缺陷。因此,我们使用确定性领域特定规则来验证和优化生成的BIM模型。我们使用基于规则的模型检查器来评估模型质量。根据(Solihin和Eastman 2015),我们定义了一系列涵盖1到3类的规则,主要检查构件之间的几何冲突(例如,门窗是否重叠),正确的语义属性定义(例如,每个构件是否具有唯一的GUID),以及空间布局是否符合建筑常识(例如,屋顶是否由墙支撑而不是悬浮)。所有规则的详细文档可以在附录II中找到。在模型中识别出的问题将被导出到BCF文件中。我们使用脚本自动从BCF中提取有用信息,即问题的名称和描述以及相应规则,以及相关构件的GUID。我们将这些信息标记为?,连同生成检查模型的????0和工具集信息?一起输入到Reviewer智能体的提示模板????中(见图6),要求Reviewer提出解决问题的建议?。这个过程可以用方程式5来表示:


? ← ?????????? (????(?,?, ????)) (5)


?然后作为输入任务提供给程序员,以指导其生成代码来解决冲突。这种质量优化循环将多次迭代,直到检查器不再发现任何错误。类似于自我反思循环,如果问题在经过3次尝试后仍然存在,我们将中断循环,并由人类设计师解决这些问题。总之,我们的框架采用三重循环来生成BIM模型,并逐步改进其质量,这可以由Alg。1总结。


算法1用于模型生成和优化的三重循环。


4 原型实施


我们开发了一个交互式软件原型,使用图7所示的架构,将提出的框架集成到BIM设计软件Vectorworks中。我们的实现基于Vectorworks的开源web调色板插件模板(Vectorworks 2024),并显著扩展了之前的工作(Du等人,2024b),以支持多智能体工作流程。Web调色板的前端使用Vue.js实现,并在Chromium嵌入框架(CEF)构建的Web环境中运行,使我们能够使用现代前端技术在Vectorworks中嵌入动态Web界面。Web调色板的后端是一个C++应用程序,可以在Web框架内定义和暴露异步JavaScript函数,而实际逻辑是使用C++实现的函数。

Fig. 7.基于web调色板插件模板的Vectorworks中实现原型的软件架构


由于我们的多Agent框架完全基于Python,我们在相应的C++函数中调用Vectorworks内置的Python引擎来执行我们的代码,从而委托JavaScript的实现。我们的框架支持各种主流LLM,如GPT-4o (OpenAI 2024a),Gemini-1.5-pro (Google 2024)和最先进的开源模型Mistral-Large-2 (Mistral 2024b)。在框架内,我们维护一个状态字典和一个本地存储模块,分别用于在Python调用之间存储状态和智能体在质量优化循环中的交互记录。我们使用Vectorworks的API将生成的模型导出为IFC文件,然后使用Solibri Autorun命令自动启动Solibri Model Checker,执行检查并输出BCFs。这种自动化使整个工作流程能够完全自主运行。在Solibri Model Checker中,根据附录II中的规则文档实施了30条规则,如图8所示。



图8.在Solibri Model Checker中实现的规则。


在前端,一个会话从新用户输入开始。如果输入是音频,我们使用 Whisper 模型(Radford 等人,2022)将语音转换为文本并填充输入消息框。我们使用页面会话存储来存储用户输入文本和智能体的聊天记录,以不同颜色顺序显示在对话框中。用户可以通过重新加载页面轻松开始新会话。图9显示了开发的原型。用户可以通过点击麦克风按钮直接与智能体聊天,直接生成可编辑的建模。


Vectorworks。补充材料中可找到演示视频。



图9.在Vectorworks中无缝集成。


用户可以通过内置聊天窗口通过语音或文本进行指示。各个智能体的响应以不同颜色显示在对话框中。生成的建筑模型包含丰富的语义信息,并可以直接在BIM软件中进一步编辑。演示视频可以在附加材料中找到。


5实验和评估


本节致力于对所提出方法的实验评估。评估通过使用测试用户提示(说明)来执行,以评估所提出的框架生成的结果,包括GPT-4o(OpenAI 2024a)、Mistral-Large-2(Mistral 2024b)和Gemini-1.5-Pro(Google 2024)等各种LLM的生成结果进行比较。提出了十个用户提示,从不同角度全面测试所提出框架的生成能力和质量,如表1所示。表2总结了每个测试提示涉及的不同建筑场景/需求,包括形状、尺寸、空间特征、房间布局、建筑材料等方面,重点关注对各自用途(住宅或商业)至关重要的功能和美学元素。此外,通过在测试提示中故意不明确一些建筑要求,我们旨在测试框架在开放式环境中生成设计的能力。考虑到生成模型的固有随机性,每个测试提示输入到每个LLM中五次,共生成了391个IFC模型(包括优化过程中的中间结果)。这些实验基于此数据集,并旨在报告出具统计显著性的结果。


表3显示了在模型检查期间由不同测试提示生成的最终模型的通过率。这些比率是基于Solibri中实施的30个特定领域检查规则计算的,反映了生成模型的质量。"n"表示输入此提示的次数。"平均通过率"记录了表1中的测试用户提示。


 1.测试用户提示



 2.测试提示中用户需求的分类(“-”表示未指定)




表2. 测试提示中用户需求的分类("-" 表示未指定)



 3.测试提示下不同骨干LLM生成的最终模型的规则通过率


根据所提议的框架,三种LLM通常能够生成高质量的BIM模型。


其中,GPT-4o和Mistral-Large-2分别在所有测试案例中实现了99.4%和99.2%的平均通过率,而Gemini-1.5-pro仅达到了94.05%的通过率。当单独检查每个测试提示时,很明显Gemini的性能与其他两种模型相比更不一致,其指标在66.67%和100%之间波动,表明存在较高的方差。第3、4和5个提示可能被视为"普遍认可的挑战",因为三种LLM都未能在所有五次运行中避免错误。此外,尽管Mistral在三者中在尺寸上是最小的模型,但其表现稳定性和出色的推理能力尤为令人印象深刻。


表3. 在测试提示下,由不同主干LLMs生成的最终模型的规则通过率。



我们进一步评估了在框架中提出的模型质量优化方法的有效性。与通过率不同,通过率是一个与类别相关的指标,我们选取问题数量作为更精细的、实例级别的指标。具体而言,通过率提供了模型中存在的问题类型的广泛概述(例如,如果模型未通过 IfcSlab-IfcSlab 交集规则但通过其他 29 个规则,则表明存在与板块位置冲突相关的问题类型),而问题量则更深入地揭示了受影响组件对的数量(例如,模型中有多少对板块实例存在位置冲突)。


图10显示了三个折线图,分别展示了在初始生成阶段以及第一、第二、第三轮质量优化迭代后,BIM模型中存在的平均问题量。可以观察到,当GPT-4o和Mistral-Large-2作为评论者智能体时,它们在模型中迭代解决问题方面是有效的。随着每一次迭代步骤,平均问题量总体趋于减少,并最终收敛到一个较小的数值,与表3中报告的结果一致。相反,Gemini-1.5-Pro在一些测试提示中呈现上升趋势,表明问题数量增加。在仔细审查Gemini智能体的日志后,我们发现Gemini经常倾向于完全重组以前程序员的代码,以生成一个新模型来尝试解决问题,而不是按照提示模板中的指令创建代码修复。这种方法会导致新旧模型的组件之间产生重复和冲突,从而导致问题数量急剧增加。此外,过多的问题会对LLM作为评论者的判断产生负面影响,在迭代过程中导致幻觉逐渐积累。





图10. 使用不同LLMs进行质量优化循环的有效性。


图11. 根据测试提示5和7生成的Text2BIM框架的定性结果。其他提示生成的模型可在附录III中找到。



图11展示了所提出框架生成的部分建筑模型。


由于空间限制,完整的生成建筑模型列表可在附录III中找到。通过仔细审查这些生成的模型,我们系统地评估了生成的建筑是否符合表2中描述的用户需求和意图。评估结果可在图12中可视化。无论使用哪种LLM,框架生成的模型通常能够有效地满足用户的意图。即使对于未明确指定某些要求的开放式指令,我们的框架也能够增强和完成用户的原始输入。它利用LLM的预先训练的建筑知识和领域规则模型检查器的反馈,最终产生在工程和建筑方面都合理的建筑。此外,可以观察到,建筑开口的合理布局,这是需要高级空间理解的任务,对所有LLM都构成挑战。



图12.根据用户在测试提示中指定的需求评估生成的模型。0表示该需求未在说明中指定,但LLM智能体生成了相关结果。-0.5表示智能体未为未指定的需求生成任何相关结果。


6 讨论与限制条件


已实现的框架目前能够在早期设计阶段生成常规、非弯曲的建筑模型。为了将这种方法推广到不规则形状的建筑或更详细的工程模型,需要开发更复杂的工具,从而显著扩展现有的有限工具集。然而,在组织和管理大量工具信息及其相互依赖方面存在挑战,以便LHM能够有效检索有用功能。知识图和基于图的检索增强生成(RAG)技术可能提供潜在解决方案。


此外,在当前框架中,Architect智能体生成结构化文本形式的建筑平面图,其中包括坐标和尺寸等数字信息。这种内容格式旨在与工具函数的输入要求保持一致,使下游智能体能够更好地理解和利用代码中的特定建筑参数。在实验中观察到,采用这种方法比使用SVG(XML)或图像来表示楼层平面图更为稳健和准确。此外,Architect目前仅基于其预训练的知识以及提示模板中提供的示例和信息来设计建筑的内部布局。尽管生成的内部分区在一定程度上看起来在视觉上是合理的(如图17所示),但它们缺乏对复杂的建筑条件(如照明、功能性、可访问性等)和法规(如消防安全、面积要求等)的全面考虑。未来的工作可以探讨如何有效将这种复杂的建筑知识整合到LLM中。


我们的实验表明,LLM智能体可以通过设计的质量优化循环在一定程度上自动解决模型内的冲突。尽管这个模块不是本研究的主要焦点,但我们在这个方向上的初步探索为相关领域的研究提供了一种新的技术方法。考虑到当前关于自动冲突解决的研究主要侧重于使用优化算法(Wu等,2023年),经典机器学习(Harode等,2024年)或强化学习(Harode等,2022年),这一点尤为重要。尽管取得了这些进展,基于LLM智能体的冲突解决方法仍然存在显著的局限性。图13总结了质量优化循环中遇到的一些典型场景。第一个常见的失败情况(a)涉及智能体尝试重写代码以创建一个新模型,导致问题数量增加,因为新旧模型组件之间存在冲突。在场景(b)中,初始模型的上两层存在重叠和嵌套的墙壁、门和窗户。在这种高度复杂的情况下,仅依赖代码和检查器反馈(规则/问题描述)获取上下文信息的LLM智能体无法解决所有问题,并容易产生幻觉。智能体在这里采取的策略包括删除相关楼层的墙壁部分。虽然这种做法可以减少模型中的总问题数量,但却会损害建筑的结构完整性。然而,目前的智能体只能从1D文本中获取信息,还不能以这种方式理解3D空间。场景(c)说明了一个成功的案例,其中智能体正确调整了一个悬浮屋顶的高度,使其与顶层墙的高度相对齐。总的来说,LLM对于具有确定性解决方案的直觉问题(通常是第1类规则,如“模型中未定义空间->创建空间”)表现良好。然而,它们经常在需要更高级空间理解和具有开放性解决方案的复杂问题上失败(通常是第3类规则,如“两个隔墙相交->哪个墙被移动,以及移动方向是什么?”)。尽管我们的框架允许用户通过对话引导LLM执行适当的问题解决操作或手动继续编辑软件生成的BIM模型,未来的研究将优先提升LLM的空间理解能力,以进一步发展成为自主冲突解决系统。


考虑到我们的方法基于提示工程技术生成三维模型的代码表示,它不需要对LLMs进行微调。这与传统的文本到三维方法有根本的不同,后者通常需要构建一个用于训练的三维数据集。常用的度量标准,如Chamfer距离(CD)和交并比(IoU),主要集中在评估点云/体素模型的几何精度。由于这些度量标准不适用于我们的数据表示方法,我们提出使用领域特定规则检查的通过率作为量化指标来评估生成的BIM模型。虽然这种方法可以验证生成的模型在建筑术语上结构完整和合理,但其局限性在于模型检查器提供的规则无法评估生成的建筑物是否符合自然语言指令中表达的抽象和动态用户意图(例如,“H”形房屋,“沿建筑物布置房间”)。



图13. 在质量优化循环中遇到的几个代表性案例。


目前,我们仍然依赖手动审查来确定模型是否符合预期指令。未来的研究可以利用这项工作生成的数据来开发新的基准数据集和指标,实现对用户意图的自动化、数据驱动评估。


7 结论  


我们介绍了Text2BIM,这是一个基于LLM的多智能体协作框架,可以从自然语言描述中生成BIM建模软件中的建筑模型

该研究的主要发现和贡献如下:


与以往侧重于生成建筑物的3D几何表示的研究不同,我们的框架能够生成具有内部布局、外部外壳和语义信息的本机BIM模型。


  • 我们提出使用与BIM设计软件API进行交互的命令式代码来表示3D建筑模型。通过采用即时工程技术,多个LLM智能体相互协作,开发代码无需进行微调,从而节省计算资源。


  • 创新地将一个领域特定的基于规则的模型检查器集成到框架中,以指导LLMs生成在架构和结构上合理的结果。所提出的质量优化循环表明,LLM智能体能够根据检查器的文本反馈在BIM模型中迭代地解决冲突。


  • 在所提出的框架内进行了大量实验,全面评估了不同模块的性能,包括对框架内三个开源/闭源LLMs进行的比较分析,验证了我们方法的一般性和有效性


  • 一个交互式软件原型已经开发,将提出的框架整合到BIM制作工具Vectorworks中,展示了在设计过程中通过聊天进行建模的创新可能性。


  • 我们相信,所提出的方法论可以在模型生成之外拓展到更广泛的用例范围,特别是如果为LLM智能体开发更专业的工具的话。我们希望读者能从中获得灵感,并探索如何利用LLMs来解决我们领域内的更多挑战。



8  数据可用性声明


本研究的一些支持数据和模型可根据合理要求向对应作者获取。


9 致谢


这项工作由Nemetschek集团资助,我们对此表示衷心感谢。我们由衷感谢Vectorworks,Inc.提供的数据和许可支持。


 附加资料


1.演示视频


附录 I. 工具集文档  

TABLE 4. 工具集(a)





表5. 工具套件(b)


表6. 工具集(c)

附录 II. 规则集文档


表7:






附录 III. 生成模型的可视化



图14. 通过提议的框架,由不同的LLMs生成的线框/渲染模式下的建筑模型,根据相应的文本描述(提示1)。



图15. 通过提出的框架,由不同LLM生成的线框/渲染模式的建筑模型,根据相应的文本描述 (Prompt Nr.4)。



Fig. 16.通过提出的框架,根据相应的文本描述,不同LLMs生成的线框/渲染模式下的建筑模型。 (提示Nr.2)。



图17。根据相应的文本描述(提示3号),通过提出的框架生成的建筑模型的线框/渲染模式。



图18. 通过所提出的框架,由不同的LLMs生成的线框/渲染模式下的建筑模型,根据对应的文本描述(提示编号6)。



图19。通过提出的框架,根据相应的文本描述,由不同的LLM生成的线框/渲染模式建筑模型。



第20图。通过提出的框架,由不同LLMs生成的建筑模型以线框/渲染模式显示,根据相应的文本描述(提示编号9)。



Fig. 21.根据相应的文本描述,通过提供的框架生成的不同LLMs的线框/渲染模式建筑模型(提示Nr.10)。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询