基于图层自动识别算法在CAD图纸基础上快速创建Revit BIM模型 - VS2022 + AutoCAD2024 + ObjectARX环境搭建

news2024/11/14 6:26:18

引言

CAD 技术将建筑师、工程师们从手工绘图推向计算机辅助制图,实现了工程设计领域的第一次信息革命。从 CAD 技术普及以来,设计成果一般都是 CAD 图纸形式表达。但是近些年来,随着建筑的复杂程度日益增加,专业间的配合更加紧密。传统的平面图式的专业配合已经无法满足日益繁复的设计任务要求。为了解决传统 CAD 技术存在的瓶颈与问题,BIM 技术应运而生,BIM 技术的诞生和使用被誉为建筑行业的第二次技术革命,它将多专业分别分步的绘图方式转换为共同绘图,把传统的二维空间模式转换为三维空间,更加具有立体感。BIM 设计相对于 CAD 二维设计,具有无可比拟优势,具体表现在: 可视化设计,便于业主决策,减少项目返工; 各专业协同设计,大幅度减少设计错误,提高设计质量; 可解决机电管道打架老大难问题。通过引入 BIM 技术,可大幅降低项目建造成本, 已成为建筑行业发展方向。

采用 BIM 的首要任务是建立 BIM 模型,BIM 建模目前有两条技术路线:
(1)BIM 正向设计
项目从草图设计阶段至交付阶段全部过程都是由 BIM 三维模型完成,设计图纸是三维模型投影得到的衍生品。目前,限于 BIM 技术发展的现状和设计人员掌握 BIM 技术的程度,BIM 正向设计的全面推行将是一个漫长的过程,在这个过渡过程中,BIM 正向设计和 BIM翻模两种技术路线将长期并存。
(2) BIM 翻模
先完成施工图,然后根据施工图再建立三维模型。BIM 翻模主要应用在设计阶段还是采用传统的 CAD 图纸,在施工、运维阶段想应用 BIM 做深化设计与管理,或者是存量建筑的 BIM 化,CIM ( City Information Modeling) 的数据快速积累等场景。现阶段多数设计人员进行 BIM 翻模还处于手工阶段,存在大量的繁重的重复性工作。BIM 建模效率低下成为其推广使用最大障碍之一,如何提高 BIM 建模效率是当前急需解决问题之一。现在市面上众多 BIM 软件中,其中要数 Aulodesk Revit 系列软件可扩展性最好,应用程序接口较为完善。基于 Revit 平台二次开发,实现从 CAD 图纸到 Revit 快速翻模。

开发环境 VS2022 + AutoCAD2024 + ObjectARX环境搭建

在这里插入图片描述

CAD 二次开发包 ObjectARX SDK

ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。 ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C++类库的封装形式,这也大大提高了程序员编程的可靠度和效率。

安装ObjectARX SDK

SDK Download:https://www.autodesk.com/developer-network/platform-technologies/autocad/objectarx-download

安装时解压缩至指定路径即可。
在这里插入图片描述
目录简介

文件夹名功能
classmapobject2024的类图(dwg格式)
docs开发文本指南,其中setup.exe会将帮助文档集成到VS中,运行并记住安装路径
inc头文件
inc-x64面向64位PC开发的头文件
lib-x64面向64位PC开发的库函数
samples样例的文件夹
utils专用程序(影像、三维实体等)

ObjectARXWizard Download:https://raw.githubusercontent.com/ADN-DevTech/ObjectARX-Wizards/ForAutoCAD2024/ObjectARXWizardsInstaller/ObjectARXWizard2024.zip

安装时需要把路径分别指向AutoCAD与ObjectArx的安装路径

Docment:https://www.autodesk.com/developer-network/platform-technologies/autocad

手动修改路径指向

VS projectItem (VS支持的项目类型)指向ObjectARXWizard2024,ObjectARXWizard2024指向ObjectARX,ObjectARXWizard2024起连接的作用。

1、修改ObjectARXWizard的路径管理

修改C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards路径下的Autodesk.arx-2021.props文件:

在这里插入图片描述

修改C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz\Templates\1033\Autodesk.arx-2024.props文件:

在这里插入图片描述

2、修改VS project下的路径管理

修改D:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\VC\vcprojects\Autodesk路径下的两个.vcz文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改D:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\VC\VCProjectItems\ObjectARX路径下7个.vcz文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开VS 2022,新建项目搜索cad或者arx可见
在这里插入图片描述
如果搜索不到,可以先重启电脑,或者检查vsz的格式修改后是否还是UTF-8。

运行第一个ARX项目

创建ARX项目

选择MFC支持。

在这里插入图片描述

生成项目结构如下

在这里插入图片描述

配置-C/C+±代码生成
在这里插入图片描述

添加打印hello world

acutPrintf(L"\nHello World!!");

在这里插入图片描述
编译生成对应的.arx文件
在这里插入图片描述
在这里插入图片描述

在CAD中引用

打开AutoCAD2024,管理 -> 加载应用程序,选中对应的arx文件

在这里插入图片描述

命令行区域显示打印成功。

在这里插入图片描述

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

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

相关文章

行业观察 | 芯片设计产业链:上游至下游

本文简单总结、介绍芯片设计产业链全流程。 更新:2023 / 7 / 2 文章目录 集成电路产业链常见的芯片架构图数字IC设计流程概略版详解版前后端前端:RTL -> Netlist后端:Netlist -> Layout 示例:基于标准单元(STD …

通过串口控制LED-单片机

1.输入数据控制LED灯状态00-ff。同时会接收输入的数据。 中断和定时器配置 void UART_Init() //4800bps11.0592MHz { SCON0X50;//sm00,sm11,ren1 PCON & 0x7F; //波特率不倍速 TMOD & 0x0F; //设置定时器模式 T1 TMOD | 0x20; …

【人工智能与机器学习】决策树ID3及其python实现

文章目录 1 决策树算法1.1 特征选择1.2 熵(entropy)1.3 信息增益 2 ID3算法的python实现总结 1 决策树算法 决策树(Decision Tree)是一类常见的机器学习方法,是一种非常常用的分类方法,它是一种监督学习。常见的决策树…

ModaHub魔搭社区:向量数据库MIlvus服务端配置(一)

目录 服务端配置 配置概述 Milvus 文件结构 配置修改 编辑配置文件 运行时修改 server_config.yaml 参数说明 cluster 区域 general 区域 network 区域 服务端配置 配置概述 以下配置说明可同时应用于单机或者分布式场景。 Milvus 文件结构 成功启动 Milvus 服务后…

加速优化WooCommerce跨境电商网站的15种简单方法

Neil Patel和 Google所做的研究表明,如果加载时间超过三秒,将近一半的用户会离开网站。页面加载时间每增加一秒(最多5秒),您的收入可能就会减少。在本教程中,我们将学习如何优化加速WooCommerce商店。 目录…

【20220605】文献翻译:高维数据动态可视化研究综述

A Review of the State-of-the-Art on Tours for Dynamic Visualization of High-dimensional Data Visualization of High-dimensional Data) Lee, Stuart, et al. “A Review of the State-of-the-Art on Tours for Dynamic Visualization of High-dimensional Data.” arXiv…

【书评】一本Android系统性能优化的新书

Android性能优化,是一个合格的Android程序员必备的技能,现如今几乎所有的Android面试内容都会或多或少涉及性能优化方面的话题。 学习Android性能优化可以让我们在简历上展示自己的专业技能和项目经验,证明自己具备高效开发和优化Android应用…

java jwt生成token并在网关设置全局过滤器进行token的校验

1、首先引入jjwt的依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>2、编写生成token的工具类 package com.jjw.result.util;import com.jjw.res…

【UnityDOTS 三】Component的理解

Component的理解 文章目录 Component的理解前言一、托管Component与非托管Component1.非托管Component2.托管Component 二、各功能的Component三、在Editor中的Component的区分总结 前言 Component作为ECS中承载数据的结构&#xff0c;了解他相关内容是非常必要的&#xff0c;…

基于Jsp+Servlet+Mysql学生信息管理系统

基于JspServletMysql学生信息管理系统 一、系统介绍二、功能展示1. 系统的部署2.导入数据库3. 系统介绍 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型&#xff1a;Java web项目/Java EE项目/ 项目名称&#xff1a;基于sevelet的学生信息管理系统 当前版本&…

用Python制作一个简单时间、日期显示工具

Python是一款强大的编程软件&#xff0c;可以轻松实现我们的多种开发需求。今天我们拿Python中自带的tkinter来开发一个时钟显示器。如下图所示&#xff1a; 时间显示器 一、编程要求 用tkinter写一个漂亮、五彩的时间显示器&#xff0c;要求显示时、分、秒&#xff0c;即时变…

【JAVA】十分钟带你了解java的前世今生

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【初始JAVA】 文章目录 前言JAVA介绍诞生&#x1f52c;名字与图标&#x1f916;发展&#x1f6e9;️未来&#x1fa84; 前言 玩过我的世界的朋友想必对JAVA以及它的图标都很熟悉&#xff0c;在游戏开始画面…

Java程序所在机器性能监控

Java程序所在机器性能监控 背景 问题单&#xff1a;程序故障&#xff08;OOM、网络不通、操作卡顿&#xff09;问题单&#xff1a;服务连接不上需求 1、监控本地机器性能 告警日志UI2、监控服务接口服务 告警日志UI方案 固定间隔获取机器网络CPU内存数据设置阈值&#xff0c;告…

自定义starter实现接口或方法限流功能

本文的思路是利用AOP技术自定义注解实现对特定的方法或接口进行限流。目前通过查阅相关资料&#xff0c;整理出三种类型限流方法&#xff0c;分别为基于guava限流实现、基于sentinel限流实现、基于Semaphore的实现。 一、限流常用的算法 1.1令牌桶算法 令牌桶算法是目前应用…

OpenCV(视频加载与摄像头使用)

目录 1、VideoCapture类 2、视频属性get() 3、视屏文件保存 1、VideoCapture类 2、视频属性get() 3、视屏文件保存 //视频的读取保存 int test3() {VideoCapture video;//video.open("F:/testMap/lolTFT.mp4");//读取视频video.open(0);//读取摄像头if (!video.i…

linux docker安装

一、Linux安装docker 1.1 前提 要求Linux内核&#xff08;kernel&#xff09; 版本大于等于3.8。&#xff08;kernel version >3.8&#xff09;。 查看当前系统内核版本 uname -a | awk {split($3,arr,"-");print arr[1]} 1.2 linux 安装docker Centos安装doc…

【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】

目录 一、队列介绍二、使用 LinkedList 实现队列三、LeetCode&#xff1a;用【栈】实现队列(1) 老师讲之前我自己的实现&#xff08;Correct&#xff09;(2) 实现思路(3) 代码实现 四、jdk 的 Queue五、双端队列&#xff08;Deque&#xff09;六、循环队列(1) 分析(2) 入队(3) …

Linux--运行指令的本质

本质&#xff1a; ①找到它 which的作用就是找到它 ②运行它 示例&#xff1a; ①告诉系统要运行的指令&#xff0c;然后系统去查找它的路径并运行它 ②自己告诉系统自己要运行的路径&#xff0c;然后系统运行它 注意&#xff1a;a.out不能运行&#xff0c;而./a.out能运行…

MES是如何帮助企业提高生产效率的

大多数提高制造生产效率的系统都是从详细分析公司的制造流程和运营开始的。这样做的目的是是为了消除浪费的不增值的流程&#xff0c;将有价值的流程系统化&#xff0c;实现生产自动化并增强增值操作。 在自动化流程方面&#xff0c;实施制造执行系统&#xff08;MES&#xff…

HTML5 游戏开发实战 | 俄罗斯方块

俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏&#xff0c;它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏看似简单但却变化无穷&#xff0c;游戏过程仅需要玩家将不断下落的各种形状的方块移动、翻转&#xff0c;如果某一行被方块充满了&…