建筑工程施工进度智能编排系统 (SCS-BIM)
建筑工程施工进度智能编排 (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_KEYmodel_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 服务已运行并已加载相应模型。
相关文章:

建筑工程施工进度智能编排系统 (SCS-BIM)
建筑工程施工进度智能编排 (SCS-BIM) 源码可见于:https://github.com/Asionm/SCS-BIM 项目简介 本项目是一个面向建筑工程的施工进度智能编制平台,用户只需上传一份标准 IFC 建筑信息模型文件,系统将自动完成以下任务: 解析模…...
Laravel模型状态:深入理解Eloquent的隐秘力量
Laravel的Eloquent ORM(对象关系映射)提供了强大且灵活的功能来处理数据库操作。深入理解Eloquent模型状态对于优化应用程序性能和维护代码的简洁性至关重要。本文将详细探讨Laravel Eloquent的模型状态及其隐秘力量。 一、Eloquent模型的基本概念 Elo…...
Spring Cloud Eureka:微服务架构中的服务注册与发现核心组件
前言 在微服务架构日益流行的今天,服务注册与发现机制成为了构建弹性、可扩展分布式系统的关键。作为Spring Cloud生态中的核心组件,Eureka为微服务架构提供了高效的服务注册与发现解决方案。本文将深入探讨Eureka的设计原理、核心机制以及在实际项目中…...
matlab实现求解兰伯特问题
求解兰伯特问题的matlab代码,非常好用 solve_lambertLYP.m , 1899 StumpffC.m , 136 StumpffdF.m , 294 StumpffF.m , 151 StumpffS.m , 167 Stumpffy.m , 96 text2.m , 104...
iOS 集成网易云信的音视频呼叫组件
云信官方文档在这 前提是集成了云信IM,并且已经IM登录成功,如果没有集成IM的看这里:iOS 集成网易云信IM-CSDN博客 1、CocoPods集成 #云信 pod NIMSDK_LITE, 10.8.0pod NERtcSDK, 5.6.50#rtc基础SDK pod NEChatUIKit#呼叫组件API组件 pod NE…...
【Elasticsearch】search_after不支持随机到哪一页,只能用于上一页或下一页的场景
search_after 确实不支持随机访问(即直接跳到任意一页),因此在前端需要随机跳转到某一页的场景中,使用 search_after 是不合适的。这种情况下,更适合使用 from 和 size 来实现分页。 为什么 search_after 不支持随机访…...
深度解析 Qt 最顶层类 QObject:继承关系与内存生命周期管理
文章目录 深度解析 Qt 最顶层类 QObject:继承关系与内存生命周期管理QObject 的继承关系QObject 的内存与生命周期管理父子对象树结构构造函数中的父对象参数父对象删除时自动删除子对象的原理举例说明 父子对象关系的好处继承关系与构造函数调用顺序信号槽机制与对…...

pikachu通关教程-XSS
XSS XSS漏洞原理 XSS被称为跨站脚本攻击(Cross Site Scripting),由于和层叠样式表(Cascading Style Sheets,CSS)重名,改为XSS。主要基于JavaScript语言进行恶意攻击,因为js非常灵活…...
k8s fsGroup
fsGroup 是 Kubernetes 中 securityContext 的一个字段,用于为 Pod 中的所有容器设置共享的文件系统组 ID(GID)。当你在 Pod 的 securityContext 中设置了 fsGroup,Kubernetes 会对挂载到 Pod 的 所有 volume(卷&#…...
Spring Boot,注解,@ConfigurationProperties
好的,这是上面关于 ConfigurationProperties 注解和 setter 方法的判断题及其解析的中文版本: 该判断题表述为:“使用ConfigurationProperties 注解注入属性值时,必须为对应的属性提供setter方法。” 这个说法是 正确的。 Config…...

AIGC学习笔记(9)——AI大模型开发工程师
文章目录 AI大模型开发工程师008 LangChain之Chains模块1 Chain模块核心知识2 Chain模块代码实战LLMSequentialTransformationRouter AI大模型开发工程师 008 LangChain之Chains模块 1 Chain模块核心知识 组合常用的模块 LLM:最常见的链式操作类型SequentialChain…...
git管理github上的repository
1. 首先注册github并创建一个仓库,这个很简单,网上教程也很多,就不展开说了 2. 安装git,这个也很简单,不过这里有个问题就是你当前windows的用户名即:C/Users/xxx 这个路径不要有中文,因为git …...
STM32学习之WWDG(原理+实操)
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...

Keil MDK5.37或更高版本不再预装ARM Compiler Version5导致编译错误的解决方法
Keil MDK5.37预装的是最新的ARM Compiler Version6 我们可以先右击查看工程属性 在Target标签下,我们可以看到Compiler Version5就是丢失的 在Target标签下,我们可以看到Compiler Version5就是丢失的 图1 以固件库方式编程,编译之后全是错…...
【iOS(swift)笔记-14】App版本不升级时本地数据库sqlite更新逻辑二
App版本不升级时,又想即时更新本地数据库怎么办? 办法二:从服务器下载最新的sqlite数据替换掉本地的数据(注意是数据不是文件) 稍加调整, // !!!注意!&…...
前端性能优化:提升用户体验的关键策略
引言 在当今快速发展的互联网时代,用户对网页加载速度和交互流畅度的要求越来越高。前端性能优化已成为提升用户体验、降低跳出率、提高转化率的关键因素。本文将深入探讨前端优化的核心策略和实践方法,帮助开发者构建更快、更高效的Web应用。 一、网络…...

Unity-UI组件详解
今天我们来学习Unity的UI的详解,这部分的内容相对较少,对于程序员来说主要的工作是负责将各种格式的图片呈现在显示器上并允许操作这些图片。 本篇帖子的理论依据依然是官方开源的UGUI代码,网址为:GitHub - Unity-Technologies/u…...
基于大模型的短暂性脑缺血发作(TIA)全流程预测与干预系统技术方案
目录 一、系统架构总览二、核心模块详细设计三、系统集成方案四、系统部署拓扑图五、技术验证方案六、健康管理子系统七、安全与合规设计技术指标与性能保障八、HL7 FHIR接口规范九、分层蒸馏方案十、多中心RCT研究设计十一、硬件选型成本优化方案跨模块集成工作流一、系统架构…...
嵌入式学习 D31:系统编程--Framebuf帧缓冲
(1)framebuf帧缓冲 :linux提供的显示设备驱动的接口。 设备路径 : 设备/dev/fb0 * 分辨率:像素点是w * h。 每个像素点色深 RGB:0-255 红绿蓝各3字节(byte)即可描述色深。…...

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

Java 大视界 -- Java 大数据在智能安防视频监控中的异常事件快速响应与处理机制(273)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

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

【图像处理入门】4. 图像增强技术——对比度与亮度的魔法调节
摘要 图像增强是改善图像视觉效果的核心技术。本文将详解两种基础增强方法:通过直方图均衡化拉伸对比度,以及利用伽马校正调整非线性亮度。结合OpenCV代码实战,学会处理灰度图与彩色图的不同增强策略,理解为何彩色图像需在YUV空间…...
D2-基于本地Ollama模型的多轮问答系统
本程序是一个基于 Gradio 和 Ollama API 构建的支持多轮对话的写作助手。相较于上一版本,本版本新增了对话历史记录、Token 计数、参数调节和清空对话功能,显著提升了用户体验和交互灵活性。 程序通过抽象基类 LLMAgent 实现模块化设计,当前…...

HALCON 深度学习训练 3D 图像的几种方式优缺点
HALCON 深度学习训练 3D 图像的几种方式优缺点 ** 在计算机视觉和工业检测等领域,3D 图像数据的处理和分析变得越来越重要,HALCON 作为一款强大的机器视觉软件,提供了多种深度学习训练 3D 图像的方式。每种方式都有其独特的设计思路和应用场…...
123网盘SDK-npm包已发布
前言 大家好!今天想和大家分享一个我最近开源的项目:123 网盘 SDK。这个项目已经在 GitHub 开源,最近已经发布到 NPM,可以通过 npm i ked3/pan123-sdk 直接安装使用。 项目背景:为什么要开发这个 SDK? 在…...
强制卸载openssl-libs导致系统异常的修复方法
openssl升级比较麻烦,因为很多软件都会依赖它,一旦强制卸载(尤其是openssl-libs.rpm),就可能导致很多命令不可用,即使想用rpm命令重新安装都不行。 所以,除非万不得已,否则不要轻易去卸载openssl-libs。而且…...
乐播视频v4.0.0纯净版体验:高清流畅的视听盛宴
先放软件下载链接:夸克网盘下载 探索乐播视频v4.0.0纯净版:畅享精彩视听之旅 乐播视频v4.0.0纯净版为广大用户带来了优质的视频观看体验,是一款值得关注的视频类软件。 这款软件的资源丰富度令人惊喜,涵盖了电影、电视剧、综艺、动漫等多种…...
Linux 命令全讲解:从基础操作到高级运维的实战指南
Linux 命令全讲解:从基础操作到高级运维的实战指南 前言 Linux 作为开源操作系统的代表,凭借其稳定性、灵活性和强大的定制能力,广泛应用于服务器、云计算、嵌入式设备等领域。对于开发者、运维工程师甚至普通用户而言,熟练掌握…...

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