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://www.mzph.cn/diannao/2384.shtml

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

相关文章

Linux文件系统与日志

一、inode和block 文件数据包括元信息与实际数据,文件存储在硬盘上,硬盘最小存储单位是扇区,每个扇区存储512字节 1.block(块):文件系统中用于存储文件实际数据的最小单位,由文件系统进行分配和管理,并通…

【电子通识】什么是8D分析法?8D步骤及用法?

在问题分析时往往会听到8D报告这样的词汇。如在电源专题【电源专题】案例:电源芯片厂家怎么判断电源芯片端口是否损坏中我们使用的图片就来源于电源芯片厂家的8D报告。 什么是8D分析法? 8D问题分析由美国国防部于1974年创立,当时用于军用物资采购保障。目前在汽车产业、组装…

MapReduce案例-电影网站数据统计分析

本文适合大数据初学者学习MapReduce统计分析业务问题的步骤和基础的MapReduce编程方法,初步掌握Hadoop对计算任务的管理。 本文末尾有全部数据集和完整代码连接。 1.准备工作 安装Hadoop:Hadoop 3.3.2 离线安装-CSDN博客 按照好Hadoop之后要检查一下datanode运行情况…

在控制台实现贪吃蛇

在控制台实现贪吃蛇 前备知识Win32APICOORD这个结构体的声明如下:GetStdHandle 函数GetConsoleCursorInfo 函数SetConsoleCursorInfo 函数 SetConsoleCursorPosition 函数getAsyncKeyState 函数 控制台窗口的大小以及字符打印介绍控制台中的坐标宽字符及本地化介绍s…

SRS服务接入华为云CDN

CDN简介: CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网…

SSH远程连接docker容器-Linux-SSH -L 打隧道

问题:在物理机上用podman创建了一个容器,想SSH直接远程连接docker容器 解决方式: 步骤1: 在本地terminal输入以下命令: ssh -L 容器端口号:localhost:容器端口号 物理机用户名物理机ip -p 物理机端口号 即可,可新打…

centos7+mysql57安装以及初始化

1、下载安装yum官方mysql源: http://repo.mysql.com/ ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/061472a86e9e4548b76d4603d4614568.png rpm -ivh mysql57-community-release-el7.rpm2、yum安装mysql服务 yum install -y mysql-community-server…

423 世界读书日 和京东零售技术人一起读好书

我们正处于一个复杂、变化的世界,想要更好地理解、适应它,读书可能是最方便的方式之一。 4 月 23 日世界读书日,我们整理了 10 位零售技术人的书籍推荐给大家,欢迎大家一起来共读好书。愿大家在忙碌工作之余,都能够持…

从0到1实现RPC | 接入Apollo配置中心

一、代码实现 添加依赖 添加apollo客户端的依赖和spring配置相关依赖 添加监听器 通过实现ApplicationContextAware接口,获取Spring上下文。 使用ApolloConfigChangeListener注解监听命名空间rpc-demo-provider.yaml和默认的application.properties。 监听逻辑…

开源大模型王者归来:llama3最大4000亿参数,性能GPT4相当,超越Grok3140亿且全开源代码

llama3&Grok 目前开源的超级大模型有Gork和Llama3 https://github.com/xai-org/grok-1;该模型称为史上最大开源LLM,参数高达3140亿!马斯克如约开源Grok,10小时狂揽10000颗Star,搞笑的是这个模型只开源了推理没有训…

17.Nacos与Eureka区别

Nacos会将服务的提供者分为临时实例和非临时实例。默认为临时实例。 临时实例跟eureka一样,会向注册中心报告心跳监测自己是否还活着。如果不正常了nacos会剔除临时实例。(捡来的孩子) 非临时实例,nacos会主动询问服务提供者是否…

古董展新风尚:山海鲸数据大屏引领科技潮流

在数字化浪潮的推动下,传统文化与现代科技正日益融合,展现出独特的魅力。近日,山海鲸推出了一款古董展览数据可视化大屏,将古董藏品的丰富内涵以直观、生动的形式呈现在观众面前,让人们在欣赏古董之美的同时&#xff0…

深入探索GDB:Linux下强大的调试神器

目录 一、GDB简介:源码级调试的基石 二、GDB基础操作:从入门到熟练 启动与基本命令 三、GDB进阶功能:解锁更深层次的调试能力 1. 回溯追踪:洞察调用栈 2. 动态内存检测:揪出内存问题 3. 条件断点与观察点&#…

制氢机远程监控运维方案

制氢机远程监控运维方案 在当今能源转型的大背景下,氢能作为清洁、高效且可再生的能源载体,其重要性日益凸显。而制氢机作为氢能产业链中的关键设备,其稳定运行与高效运维对于保障氢气供应、推动氢能产业健康发展至关重要。在此背景下&#…

基于Linux系统命令行安装KingbaseES数据库

人大金仓通用性数据库(Kingbase)下载网址:人大金仓-成为世界卓越的数据库产品与服务提供商 选择“软件版本-数据库”,筛选条件Linux、完整版。找到需要的版本,点击下载。我下载的是KingbaseES_V008R006C008B0014_Lin6…

实现Spring底层机制(二)

文章目录 阶段2—封装bean定义信息到Map1.代码框架图2.代码实现1.文件目录2.新增注解Scope存储单例或多例信息Scope.java3.修改MonsterService.java指定多例注解4.新增bean定义对象存储bean定义信息BeanDefinition.java5.修改pom.xml增加依赖6.修改容器实现bean定义信息扫描Sun…

nginx开启basic认证

basic认证也叫做http基本认证,防止恶意访问 首先用在线网站生成一个叫做htpasswd的账号密码文件。 将生成结果复制到/etc/nginx/htpasswd文件中 在server的location中配置 server { listen 80; server_name a.com;location / { root html;index index.…

springcloud alibaba 整合seata的TCC

一、seata服务端搭建同上篇。 Seata的AT模式客户端两阶段提交流程源码分析 二、seata客户端的结构 1.示例DEMO工程 下单,扣余额, 减库存。 2. MAVEN配置。 父工程:由于spring-cloud-starter-alibaba-seata依赖的seata-spring-boot-starter…

顺序栈着三种结构定义及其初始化

定义 顺序堆栈这三种结构定义及其初始化 - 知乎 (zhihu.com) 根据以上链接得到: 1.理解为数组,top是这个数组的索引值;定义这个结构体类型时,系统不分配空间 在主函数声明时,定义了关于这个结构体的变量&#xff0c…

Java 【数据结构】 二叉树(Binary_Tree)【神装】

登神长阶 第五神装 二叉树 Binary-Tree 目录 🎷一.树形结构 🪗1.概念 🎸2.具体应用 🎹 二.二叉树(Binary Tree) 🎺1.概念 🎻2.表现形式 🪕3.特殊类型 &#x1f941…