建筑工程施工进度智能编排系统 (SCS-BIM)

news2025/6/6 11:25:11

建筑工程施工进度智能编排 (SCS-BIM)

源码可见于:https://github.com/Asionm/SCS-BIM

项目简介

本项目是一个面向建筑工程的施工进度智能编制平台,用户只需上传一份标准 IFC 建筑信息模型文件,系统将自动完成以下任务:

  • 解析模型中的构件类型、楼层信息和物理量数据;
  • 调用语言模型自动生成构件分类、施工阶段和楼层映射;
  • 基于定额库匹配构件对应的工日信息;
  • 自动生成合理的施工顺序和任务依赖;
  • 根据工日和人员配置估算施工周期;
  • 输出甘特图并支持 CSV 进度计划导出。

平台结合 IFC 模型解析、语言模型推理、定额工日估算和甘特图可视化,面向设计单位、施工单位和 BIM 工程师,帮助高效编制建筑施工进度计划。

示例展示

在这里插入图片描述

技术流程

本项目主要基于 Python + Flask 构建后端,结合 IfcOpenShell 实现对 IFC 模型的构件与工程量解析,利用 OpenAI 或本地 Ollama 大语言模型完成构件分类、定额匹配与施工顺序推理,并通过 dhtmlxGantt 实现前端施工进度可视化,整体技术栈融合了 BIM 数据处理、智能语义推理与交互式工程展示。下图展示了平台自动施工进度编制的整体技术流程:

在这里插入图片描述
流程说明:

  • IFC文件上传:用户上传标准的 IFC 建筑模型;

  • 信息提取:系统解析 IFC,提取楼层、构件、单位、类别等基础数据;

  • AI参与(LLM):通过语言模型智能生成构件分类、阶段信息及施工逻辑;

  • 构件尺寸分析:自动获取体积、面积等工程量;

  • 定额匹配与工日补充:通过定额库补充每类构件所需工日;

  • 施工顺序形成:生成任务依赖、施工流水顺序等;

  • 进度计划安排:最终生成符合逻辑的甘特图施工进度表。

安装与运行指南

1. 克隆项目

git clone https://github.com/Asionm/SCS-BIM
cd SCS-BIM

2. 安装依赖

建议使用 Python 3.10+ 与虚拟环境:

python -m venv venv
source venv/bin/activate  # Windows 使用 venv\Scripts\activate
pip install -r requirements.txt

3. 启动后端服务

确保本地 Ollama 或 OpenAI 接口可用,并配置好 config.py 中的 API 相关信息:

python app.py

默认服务地址为:http://localhost:5000

4. 启动前端页面

打开源码中的index.html访问, 上传 .ifc 文件,平台将自动处理并展示施工甘特图计划。

项目结构

以下是根据你项目的文件结构撰写的 README.md 中的 项目结构(Project Structure) 部分:


项目结构 | Project Structure

SCS-BIM/
│
├── app.py                 # Flask 主程序,处理上传、进度推送和任务调度
├── config.py              # LLM 接口配置,支持 OpenAI 与 Ollama 切换
├── export_sequence.py     # 生成任务列表与施工甘特图数据
├── generate_bill.py       # 从 IFC 提取构件工程量并生成清单
├── index.html             # 前端页面(上传 + 甘特图展示)
├── LLM.py                 # 调用大语言模型,生成施工结构与匹配定额项
├── pre_process.py         # IFC 文件预处理,提取项目信息与构件类别
├── quota_match.py         # 根据定额库计算工日与施工周期
├── requirements.txt       # Python 依赖列表
├── test.py                # 示例/测试脚本入口(可选)
├── README.md              # 项目说明文档
└── static/
    └── ...                # 上传文件与模板配置文件存放目录

配置说明

本项目支持使用 OpenAI 或本地部署的 Ollama 作为语言模型调用源,相关设置集中在 config.py 中的 LangChainConfig 类中。

1. 模型提供方选择

config.py 中可以通过 provider 参数切换:

LangChainConfig(provider="openai")     # 使用 OpenAI(默认使用环境变量中的 API Key)
LangChainConfig(provider="ollama")     # 使用本地部署的 Ollama 模型

2. OpenAI 配置项

如使用 OpenAI,请确保设置以下内容:

LangChainConfig(
    provider="openai",
    api_key="your-openai-key",                 # 或设置环境变量 OPENAI_API_KEY
    model_name="gpt-4o",                       # 可替换为 gpt-4o, gpt-3.5-turbo 等
    openai_base_url="https://api.openai.com"   # 如使用第三方兼容接口,请替换此地址
)

3. Ollama 配置项

如使用 Ollama 本地模型(推荐部署 mistral, llama3 等):

LangChainConfig(
    provider="ollama",
    ollama_model="mistral",                     # 模型名称
    ollama_host="http://localhost:11434"        # Ollama 默认服务地址
)

确保本地 Ollama 服务已运行并已加载相应模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2398481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pikachu通关教程-XSS

XSS XSS漏洞原理 XSS被称为跨站脚本攻击(Cross Site Scripting),由于和层叠样式表(Cascading Style Sheets,CSS)重名,改为XSS。主要基于JavaScript语言进行恶意攻击,因为js非常灵活…

AIGC学习笔记(9)——AI大模型开发工程师

文章目录 AI大模型开发工程师008 LangChain之Chains模块1 Chain模块核心知识2 Chain模块代码实战LLMSequentialTransformationRouter AI大模型开发工程师 008 LangChain之Chains模块 1 Chain模块核心知识 组合常用的模块 LLM:最常见的链式操作类型SequentialChain…

Keil MDK5.37或更高版本不再预装ARM Compiler Version5导致编译错误的解决方法

Keil MDK5.37预装的是最新的ARM Compiler Version6 我们可以先右击查看工程属性 在Target标签下,我们可以看到Compiler Version5就是丢失的 在Target标签下,我们可以看到Compiler Version5就是丢失的 图1 以固件库方式编程,编译之后全是错…

Unity-UI组件详解

今天我们来学习Unity的UI的详解,这部分的内容相对较少,对于程序员来说主要的工作是负责将各种格式的图片呈现在显示器上并允许操作这些图片。 本篇帖子的理论依据依然是官方开源的UGUI代码,网址为:GitHub - Unity-Technologies/u…

黑马点评完整代码(RabbitMQ优化)+简历编写+面试重点 ⭐

简历上展示黑马点评 完整代码地址 项目描述 黑马点评项目是一个springboot开发的前后端分离项目,使用了redis集群、tomcat集群、MySQL集群提高服务性能。类似于大众点评,实现了短信登录、商户查询缓存、优惠卷秒杀、附近的商户、UV统计、用户签到、好…

Java 大视界 -- Java 大数据在智能安防视频监控中的异常事件快速响应与处理机制(273)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

【数据库】安全性

数据库安全性控制的常用方法:用户标识和鉴定、存取控制、视图、审计、数据加密。 1.用户标识与鉴别 用户标识与鉴别(Identification & Authentication)是系统提供的最外层安全保护措施。 2.存取控制 2.1自主存取控制(简称DAC) (1)同一用户对于不同的数据对…

【图像处理入门】4. 图像增强技术——对比度与亮度的魔法调节

摘要 图像增强是改善图像视觉效果的核心技术。本文将详解两种基础增强方法:通过直方图均衡化拉伸对比度,以及利用伽马校正调整非线性亮度。结合OpenCV代码实战,学会处理灰度图与彩色图的不同增强策略,理解为何彩色图像需在YUV空间…

HALCON 深度学习训练 3D 图像的几种方式优缺点

HALCON 深度学习训练 3D 图像的几种方式优缺点 ** 在计算机视觉和工业检测等领域,3D 图像数据的处理和分析变得越来越重要,HALCON 作为一款强大的机器视觉软件,提供了多种深度学习训练 3D 图像的方式。每种方式都有其独特的设计思路和应用场…

FreeRTOS的简单介绍

一、FreeRTOS介绍 FreeRTOS并不是实时操作系统,因为它是分时复用的 利用CubeMX快速移植 二、快速移植流程 1. 在 SYS 选项里,将 Debug 设为 Serial Wire ,并且将 Timebase Source 设为 TIM2 (其它定时器也行)。为何…

深入解析C++引用:从别名机制到函数特性实践

1.C引用 1.1引用的概念和定义 引用不是新定义⼀个变量,而是给已存在变量取了⼀个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同⼀块内存空间。比如四大名著中林冲,他有一个外号叫豹子头,类比到C里就…

项目交付后缺乏回顾和改进,如何持续优化

项目交付后缺乏回顾和改进可通过建立定期回顾机制、实施反馈闭环流程、开展持续学习和培训、运用数据驱动分析、培养持续改进文化来持续优化。 其中,实施反馈闭环流程尤其重要,它能够确保反馈信息得到有效传递、处理与追踪,形成良好的改进生态…

从0开始学习R语言--Day15--非参数检验

非参数检验 如果在进行T检验去比较两组数据差异时,假如数据里存在异常值,会把数据之间的差异拉的很大,影响正常的判断。那么这个时候,我们可以尝试用非参数检验的方式来比较数据。 假设我们有A,B两筐苹果&#xff0c…

EC2 实例详解:AWS 的云服务器怎么玩?☁️

弹性计算、灵活计费、全球可用,AWS EC2 全攻略 在 AWS 生态中,有两个核心服务是非常关键的,一个是 S3(对象存储),另一个就是我们今天的主角 —— Amazon EC2(Elastic Compute Cloud&#xff09…

第三发 DSP 点击控制系统

背景 ​ 在第三方 DSP 上投放广告,需要根据 DP Link 的点击次数进行控制。比如当 DP Link 达到 5000 后,后续的点击将不能带来收益,但是后续的广告却要付出成本。因此需要建立一个 DP Link 池,当 DP Link 到达限制后,…

【笔记】在 MSYS2 MINGW64 环境中降级 NumPy 2.2.6 到 2.2.4

📝 在 MSYS2 MINGW64 环境中降级 NumPy 到 2.2.4 ✅ 目标说明 在 MSYS2 的 MINGW64 工具链环境中,将 NumPy 从 2.2.6 成功降级到 2.2.4。 🧰 环境信息 项目内容操作系统Windows 11MSYS2 终端类型MINGW64(默认终端)Py…

vue入门环境搭建及demo运行

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 vue简介:第一步:安装node.jsnode简介第二步:安装vue.js第三步:安装vue-cli工具第四步 :安装webpack第五步…

原始数据去哪找?分享15个免费官方网站

目录 一、找数据的免费官方网站 (一)国家级数据宝库:权威且全面 1.中国国家统计局 2.香港政府数据中心 3.OECD数据库 (二)企业情报中心:洞察商业本质 4.巨潮资讯 5.EDGAR数据库 6.天眼查/企查查&a…

宝塔部署 Vue + NestJS 全栈项目

宝塔部署 Vue NestJS 全栈项目 前言一、Node.js版本管理器1、安装2、配置 二、NestJS项目管理(等同Node项目)1、Git安装2、拉取项目代码3、无法自动认证4、添加Node项目5、配置防火墙(两道) 三、Vue项目管理1、项目上传2、Nginx安…

# [特殊字符] Unity UI 性能优化终极指南 — LayoutGroup篇

🎯 Unity UI 性能优化终极指南 — LayoutGroup篇 🧩 什么是 LayoutGroup? LayoutGroup 是一类用于 自动排列子节点 的UI组件。 代表组件: HorizontalLayoutGroupVerticalLayoutGroupGridLayoutGroup 可以搭配: Conte…