用AI生成IFC查看器代码【ChatGPT】

2024-04-28 15:04

本文主要是介绍用AI生成IFC查看器代码【ChatGPT】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我想分享一下我最近使用 ChatGPT 的经历。 作为一名 AI 爱好者,我一直在撰写有关各种 AI 技术的文章,包括 ChatGPT。 两周前,我决定测试是否可以创建一个 Python 应用程序来显示 3D IFC 文件及其信息。

首先,这并不容易,特别是ChatGPT提供的服务在此期间有大量的停机时间。 这可能与他们在平台上实施的新服务有关,但对我来说,在高峰时段访问人工智能(我的意思是真正的逻辑人工智能)并不容易。

很多时候,系统无法产生正确的答案,或者甚至出现与我的网络无关的网络错误,因为我通常在其他网站上使用它。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割

1、IFC查看器生成任务概述

鉴于上述信息,我希望AI需要完成如下IFC 查看器生成任务:

  • 创建 Python 图形用户界面
  • 访问 IFC 文件
  • 在 GUI 内以 3D 方式查看
  • 通过鼠标和键盘按钮在 3D 模型中导航
  • 查看 IFC 文件内的内容作为信息
  • 查看 IFC 元素的属性

ChatGPT 推荐我使用的一些库:

  • ifcopenshell
  • PyQt5
  • OpenGL
  • math
  • NumPy
  • sys

2、ChatGPT生成的IFC查看器

我们创建了 4 个 Python 文件来执行上面列出的过程:

  • main-viewer.py:作为应用程序的主界面。使用PyQt5构建主窗口,呈现各种UI控件。集成3D查看器(IFCViewer3D)、几何提取(GeometryExtractor)和实体列表(EntityLister)功能。
  • ifc_viewer_3d.py:使用PyQt5和OpenGL提供核心3D查看功能。管理3D渲染空间,包括相机参数和帧速率监控。 定义 3D 空间中的背景颜色和其他视觉元素。
  • Geometry_extractor.py:使用 ifcopenshell 库处理从 IFC 文件中提取几何数据。 处理 IFC 文件中的实体以获得其形状、颜色和全局 ID。 过滤掉特定的实体类型,例如空格和开放元素。
  • ifc_entity_finder.py:列出并标识 IFC 文件中存在的唯一 IFC 实体。检索与特定实体关联的属性,以结构化格式呈现它们。

基本可以这么说:

  • main-viewer.py 是主 UI 界面。
  • ifc_viewer_3d.py 处理 3D 可视化。
  • Geometry_extractor.py 专注于从 IFC 文件中提取几何数据。
  • ifc_entity_finder.py 识别并列出 IFC 实体及其属性。

这是AI生成的流程图:

ChatGPT 创建的流程图

  • main-viewer.py 是应用程序的中心点,集成了其他模块的功能。
  • 当用户打开 IFC 文件时,main-viewer.py 与 Geometry_extractor.py 交互以获取几何数据。
  • 同时,main-viewer.py 利用 ifc_entity_finder.py 列出 IFC 实体及其属性。
  • 对于 3D 可视化,main-viewer.py 调用 ifc_viewer_3d.py 来渲染 3D 模型。

对我来说最令人兴奋的部分是这些文件正在运行。 好吧,它不是一个专业级的 IFC 应用程序(打开 45 MB 的 IFC 文件需要 3 - 4 分钟,并且用户交互有限),但最终它是一个 IFC 查看器。

AI有潜力通过提供创新、高效的解决方案来彻底改变 AEC 行业。 随着我们不断探索人工智能的能力,我希望看到更先进、更引人注目的应用程序,能够增强行业的各个方面。 这些新的解决方案有可能提高生产力、降低成本并加速设计和施工过程。

请观看视频:

3、最终的IFC查看器截图

前视图

线框图:

热力泵属性:


原文链接:用ChatGPT生成IFC 查看器 - BimAnt

这篇关于用AI生成IFC查看器代码【ChatGPT】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/943556

相关文章

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven