Bentley二次开发教程02-开发环境搭建

1 Bentley 平台介绍

在这里插入图片描述

图 1 Bentley 平台介绍
Bentley 软件大致可分为四大平台,分别为用于设计的 Microstation 平台,用于协同的 ProjectWise 平台,用于对资产进行全生命周期管理的 AssetWise 平台和数据互联互通的
数字孪生平台 iTwin。

1.1 MicroStation

MicroStation,即 Bentley 的基础图形平台软件。它基于三维设计,支持实体建模、 B 样条曲面建模和网格建模三大三维图形内核,可兼容其他各种图形平台导入的数据格式。 同时, MicroStation 还是一个囊括二维绘图、三维建模、图形渲染,动画制作的全方位多 功能图形平台。基于强大的 MicroStation 平台,根据各个专业的不同需求, Bentley 开发 出面向不同专业的 Open 系列设计软件, 生成模型可利用 Bentley 开发的计算软件进行结
果分析。

1.2 ProjectWise

为满足企业跨时间,跨空间协作的需求, ProjectWise 平台提供了一个集成的协同环
境,可以精确有效地管理各个专业的文件内容, 并通过良好的安全访问机制,供项目各个
参与方在一个统一的平台上协同工作。

1.3 AssetWise

AssetWise 平台主要用于对资产在全生命周期中的管理,它是一系列软件的统称, 其中 核心软件叫做 eB。eB 软件提供有从项目前期的合同管理到设计阶段的管理到项目移交、
运营直至某个管件的作废的 “全生命周期”管理过程。

1.4 iTwin

在整个建设周期中, 传统迭代过程中获得到的信息被不断积累——抛弃,而在数据孪 生中,数据被不断的被积累、迭代、优化,周而复始,从而提升整个流程的决策,降低风
险,提高生产力和应变能力。 iTwin 平台可兼容各种类型的数据格式,并保证信息无损,
通过信息整合统筹管理,优化物理资产。

2 Bentley 平台插件开发介绍

2.1 Bentley 产品 SDK 间关系介绍

在这里插入图片描述

图 2 Bentley 产品 SDK 关系
虽然 Bentley 拥有几乎涵盖了各个专业的设计软件,但在实际应用中, 可能会出现
在特定场景下无法适配的情况,此时就需要通过二次开发的方式实现既定的功能需
求,这也就是 Bentley 软件提供软件开发包的初衷与意义。您可以通过使用软件开发 包开发出符合您自身业务需求的工具甚至软件, 借此提高生产力。我们可以看到上图 列有 MicroStation SDK 和 ORD SDK ,ORD(OpenRoadsDesigner)是 Bentley 公司
面向道路专业设计的一款专业软件 ,它们是两个独立的软件安装包。如果您只基于
MicroStation 中的对象进行开发, 在安装 MicroStation 的基础上安装 MicroStation
SDK 即可。若要基于 ORD 做开发,则需安装 ORD SDK。在 ORD 二次开发程序中您 既可以通过 ORD SDK 去访问 DGN 文件中的 ORD 专用对象(比如边坡,廊道等) ,
还可以通过 MicroStation SDK 去访问 DGN 文件中的通用对象(比如文字、标注、普

通的几何体等) 。若您对特定专业的二次开发感兴趣也欢迎您登陆中国优先社区或
Bentley-learn 网站了解更多信息。

2.2 Bentley 软件开发语言介绍

在这里插入图片描述

图 3 Bentley 软件支持的开发语言表
Bentley 设计软件支持三种开发语言: VBA、C#和 C++。VBA 语言仅需安装
MicroStation,简单易学,但存在 API 接口不全, 在开发大型程序时较为困难; C#语言需
安装 MicroStation 与 VisualStudio,相对于 C++来说,上手难度较低, 可使用
Winform ,WPF 定制界面灵活性较大,可以满足开发大型程序的需要。 C++语言需安装 MicroStation ,VisualStudio 与对应的 SDK,具有功能最全,性能最佳的优势,但也存在
学习成本较大, 界面不易制作的问题。
目前关于 C#语言的 SDK 封装已经日趋完整, 因为其语言自身无需关心内存的开辟与回 收的特点,可以让您更加专注于业务功能的实现,因此若您的编程技术较弱,或需要快速
编写业务功能, 推荐您使用 C#语言进行 Bentley 软件的二次开发。

2.3 MicroStation 托管应用开发架构

在这里插入图片描述

图 4 Bentley 软件开发架构
MicroStation 托管应用开发架构 (即使用 C#语言对 Bentley 基础平台进行二次开发)
主要分为以下六大块:
几何库:主要负责几何层面的变换与修改;
属性表达库:主要负责工程属性的添加与修改;
DGN 平台库:主要负责读写 dgn 文件的操作;
DGN 文件显示库:主要负责 dgn 文件的内容显示或交互式工具;
MicroStation 应用库:主要对管理器,会话等应用继续管理;
Addins 工具:可调用上述所有库。
在开发过程中,主要调用的 API 主要有:
几何 API

在这里插入图片描述

图 5 常用几何 API
主要面向应用程序提供几何运算方面的支持, 他提供了通用的几何图元,包含几何对象
的创建, 编辑, 定位等操作。
元素 API
在这里插入图片描述

图 6 常用元素 API
主要用于对元素的控制。元素为 MicroStation 中构件的基本单位, MicroStation 有很多
种类型的元素, 我们可以将其分成图形元素和控制元素。
模型 API

在这里插入图片描述

图 7 常用模型 API
主要用于对数据,例如存储构件的容器及模型层面的环境配置等进行操作,或对于视
图,比如说对元素显示,视图布局等进行控制。
文件 API
在这里插入图片描述

图 8 常用文件 API
主要用于修改模型的容器及环境配置, 比如说图层,样式,字体, EC 属性等。
事件 API

在这里插入图片描述

图 9 因指定事件出现触发 API
在这里插入图片描述

图 10 常用事件 API 表
主要用于监控用户特定操作事件,在用户做出指定操作后触发。
管理器 API

在这里插入图片描述

图 11 常用管理器 API

通过这些接口我们可以直接调用到 MicroStation 中的一些功能。例如通过
ACSManager 我们可以对坐标系进行变换,通过 SelectionSetManager 这个类完成对选择
集的操作。
约束及参数化 API
在这里插入图片描述

图 12 约束及参数化 API

在创建参数化模型时, 通常需要先规划一下参数化模型需要哪些参数去控制。若前期规
划得当, 后期可以省去很多修改模型带来的麻烦。SDK 中提供了参数化建模的编程接口。
DgnTool 命令工作集
在这里插入图片描述

图 13 人机交互界面

在这里插入图片描述

图 14 常用事件虚函数功能对照表
MicroStation 中超过一半的功能都是以交互式工具的形式而存在的,我们可以通过重写
该工具集中的虚函数来实现所需功能。通过上述 API 协调配合, 实现既定的功能。

3 开发环境搭建

3.1 MicroStation 安装流程介绍

在这里插入图片描述

图 15 双击运行安装包

在这里插入图片描述

图 16 勾选“我接受最终用户许可协议”

在这里插入图片描述

图 17 若需修改安装路径则点击该项
在这里插入图片描述

图 18 等待程序自动下载安装即可

在这里插入图片描述

图 19 程序安装完成

3.2 MicroStation SDK 安装流程介绍

在这里插入图片描述

图 20 双击运行安装包

在这里插入图片描述

图 21 勾选“我接受最终用户许可协议”
在这里插入图片描述

图 22 若需修改安装路径则点击该项

在这里插入图片描述

图 23 程序安装完成

3.3 Visual Studio 安装流程介绍

在这里插入图片描述

图 24 双击运行安装包
对于 Bentley 平台的开发来说, 若使用 C#语言进行开发,需勾选.NET 桌面开发,若使
用 C++语言进行开发,则需勾选使用 C++的桌面开发。您可根据您的实际情况按需安
装,同时后续也可在 Visual Studio 中继续添加模块。

在这里插入图片描述

图 25 Visual Studio 模块安装界面
因为 Bentley 二次开发基于.NET Framework4.6.2,因此, 若您安装的 Visual Studio 版
本为 2017,请注意勾选.NET Framework 4.6.2 开发工具。
在这里插入图片描述

图 26 模块安装界面

在这里插入图片描述

图 27 若需修改安装路径则点击该项
在这里插入图片描述

图 28 等待程序自动下载安装即可

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

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

相关文章

CyclicBarrier(循环屏障)源码解读与使用

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. 什么是CyclicBarrier? 3. CyclicBarrier与CountDownL…

潜力与限制:低代码开发平台优缺点全面分析

低代码开发平台作为一种创新技术工具,正以其快速开发、低门槛参与和灵活定制等特性,重塑企业数字化转型之路。然而,任何技术都有其两面性,低代码平台也不例外。本文将深入探讨低代码开发平台的优缺点,并为您推荐值得信…

git常见命令(成长版)

ps:所谓成长版就是后续可能还会添加命令: 1.删除本地分支: git branch -d 分支名 2.拉取代码后默认master分支,切换到线上其他分支: (1)查看线上所有分支: git branch -a &#…

排序算法:顺序查找

简介 顺序查找(也称为线性查找)是一种简单直观的搜索算法。按照顺序逐个比较列表或数组中的元素,直到找到目标元素或搜索完整个列表。 应用场景 数据集比较小,无需使用复杂的算法。数据集没有排序,不能使用二分查找…

数栈+AI:数栈V6.2创新发布,让数据开发更智能

近日,以“DataAI,构建新质生产力”为主题的袋鼠云春季发布会圆满落幕,大会带来了一系列“AI”的数字化产品与最新行业沉淀,旨在将数据与AI紧密结合,打破传统的生产力边界,赋能企业实现更高质量、更高效率的…

C语言指针+-整数、指针-指针、指针关系运算、指针和数组、二级指针、指针数组

文章目录 前言一、指针 - 整数二、指针 - 指针三、指针的关系运算四、指针和数组五、二级指针六、指针数组指针数组可以将几个一维数组模拟成二维数组 总结 前言 C语言指针整数、指针-指针、指针关系运算、指针和数组、二级指针、指针数组等介绍,还包括指针数组将几…

【C++】---STL之vector的模拟实现

【C】---STL之vector的模拟实现 一、vector在源码中的结构:二、vector类的实现:1、vector的构造2、析构3、拷贝构造4、赋值运算符重载5、迭代器6、operator[ ]7、size()8、capacity()9、reserve()10、resize()11、empty()12、push_back()13、pop_back()1…

基于JAVA的机场航班起降与协调管理系统

毕业设计(论文)任务书 第1页 毕业设计(论文)题目: 基于JAVA的机场航班起降与协调管理系统 毕业设计(论文)要求及原始数据(资料): 1.综述机场航班调…

JRebel热部署SpringBoot+MyBatis-Plus实现不重启更新修改后MyBatis的XML文件

安装JRebel热部署插件 《JRebel插件安装教程》 《JRebel mybatisPlus extension下载Zip离线安装》 在线安装JRebel mybatisPlus extension 插件商店直接搜JRebel mybatisPlus extension pom.xml 引入依赖 <dependency><groupId>com.baomidou</groupId>…

裤裤带你一起学C语言内存函数啦!

目录 1.memcpy的使用和模拟实现 2.memmove使用和模拟实现 3.memset函数的使用 4.memcmp函数的使用 内存函数在<string.h>库中&#xff0c;我们使用内存函数必须先引入<string.h>头文件 1.memcpy的使用和模拟实现 memcpy的函数原型如下&#xff1a; void * m…

大模型热潮下,AI数据集的重要性及发展现状

2023年3月14日&#xff0c;OpenAI发布了多模态大模型的最新版本GPT-4&#xff1a;文生视频大模型Sora&#xff0c;Sora通过采用更大规模的数据集进行训练,其推理能力超过了ChatGPT&#xff0c;已成为目前最成功、最受欢迎的大模型。 Sora的出现&#xff0c;打破了人们对AI技术…

sketchup{su}安装错误1402

错误如图 解决方法如下 打开autoremove&#xff0c;点击扩展&#xff0c;输入1402&#xff0c;点击搜索 等待修复成功既可尝试重新安装su 软件每周六选择其他方式登录免费使用

SCP收容物091~100

注 &#xff1a;此文接SCP收容物081~090,本文只供开玩笑 ,与steve_gqq_MC合作。 --------------------------------------------------------------------------------------------------------------------------------- 目录 scp-091 scp-092 scp-093 scp-094 scp-095…

RF高频腔设计(7)

3.11 高阶模 之前我们说过&#xff0c;由于束流负载或者其它的原因会在RF高频腔中激发出很多模式&#xff0c;这些模式可能会对束流的稳定性造成不利的影响&#xff0c;尤其是腔的 R / Q ∗ Q L R/Q*Q_L R/Q∗QL​很高时。 为了解决这个问题&#xff0c;需要使用HOM阻尼器来抑…

缓解工作压力的小窍门:保持健康与创新

目录 1 前言2 工作与休息的平衡3 保持心理健康4 社交与网络建设5 结语 1 前言 作为程序员&#xff0c;我们常常承受着高度的工作压力和持续的创新挑战。为了保持高效和健康&#xff0c;我们需要采取一些方法来缓解工作压力&#xff0c;同时促进个人的心理和身体健康。 2 工作…

Android—— log的记忆

一、关键log 1.Java的 backtrace(堆栈log) 上述是一个空指针异常&#xff0c;问题出现在sgtc.settings&#xff0c;所以属于客户UI问题。 2.WindowManager(管理屏幕上的窗口和视图层次结构) 3.ActivityManager(管理应用程序生命周期和任务栈) 4.wifi操作 (1) 连接wifi&#…

安卓原生项目工程结构说明

.gradle 和 .idea (自动生成) .gradle 是gradle下载好的缓存&#xff0c;如果有配置好的 下载好的缓存 直接会拿来用 没有会下载 生成 .idea 是编辑器的配置 app 代码主逻辑 目录 项目中的代码 资源都会在里面 工作的时候的核心目录 gradle 下载安卓的构建器gradle相关的配置信…

Linux c++ onvif客户端开发(8):GetServices

本文是Linux c onvif客户端开发系列文章之一&#xff1a; Linux c onvif客户端开发(1): 根据wsdl生成cpp源文件Linux c onvif客户端开发(2): 获取摄像头H264/H265 RTSP地址Linux c onvif客户端开发(3): 扫描设备Linux c onvif客户端开发(4): 扫描某个设备是否支持onvifLinux c…

目标检测——野火数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

八股中的记录

1. protected修饰符&#xff1a;同包或子类&#xff08;不同包&#xff09; 区分普通人和专业人调用的一些方法 2. 抽象&#xff1a;abstract修饰类和方法 抽象类不可实例化&#xff0c;避免错误的new对象 抽象方法是用abstract修饰的方法声明&#xff0c;没有方法体&#xff…