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

news2025/1/15 17:47:09

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.coloradmin.cn/o/1618052.html

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

相关文章

【六十四】【算法分析与设计】699. 掉落的方块,离散化操作,线段树优化,区间查询sum+区间更新update

699. 掉落的方块 在二维平面上的 x 轴上,放置着一些方块。 给你一个二维整数数组 positions ,其中 positions[i] [left(i), sideLength(i)] 表示:第 i 个方块边长为 sideLength(i) ,其左侧边与 x 轴上坐标点 left(i) 对齐。 每个…

SJMG—650T型微机控制静载锚固试验机

一.概述 SJMG-650T型微机控制静载锚固试验机是预应力锚具生产企业的出厂检验和型式试验、大型工程使用单位的锚具进场验收、产品质量监督部门对预应力锚具组装件检测的专用设备。该设备由宽调速范围数字伺服阀及微机测控技术,组成全自动闭环调速控制系统&#xff0…

IDM 平替 Gopeed Flutter 开源免费下载工具

IDM 平替 Gopeed Flutter 开源免费下载工具 视频 https://youtu.be/m206G5lVXPM https://www.bilibili.com/video/BV1Lz421k7Zp/ 前言 原文 https://ducafecat.com/blog/flutter-gopeed-downloader-idm-replace https://flutter.ducafecat.com/github/repo/GopeedLab/gopeed…

坚蛋运动新质生产力实践——“AI健康”战略引领产品和服务创新

进入AI时代,全球互联网企业均开启了以大模型及其应用为代表的第四次工业革命的激烈竞赛。坚蛋运动已在全国范围内布局300门店,预计实现2024年500、2025年1000门店,作为国内运动健康产业的头部品牌,坚蛋运动率先提出并推动“AI健康…

Docker 基本认识

一 国内: 阿里云 提供ECS(Elastic Compute Service)弹性计算服务,包括通用型、计算型、内存型等多种实例, 满足不同应用场景的需求。 支持按需付费、包年包月等多种计费方式。 腾讯云: 提供CVM&#…

重磅发布 | 《网络安全专用产品指南》(第一版)

2017年6月1日,《中华人民共和国网络安全法》正式实施,明确规定“网络关键设备和网络安全专用产品应当按照相关国家标准的强制性要求,由具备资格的机构安全认证合格或者安全检测符合要求后,方可销售或者提供。国家网信部门会同国务…

vue3 watch监听

Watch在vue3中是一个组合API,可以多次调用,它有三个参数: Params1:被监听的变量,可以是一个数组,存放多个变量。 Params2:回调函数,监听的数据有变化时调用,回调函数中有…

IUG-CF论文精读

Neural collaborative filtering with ideal user group labels (具有理想用户组标签的神经协同过滤) 论文地址:https://www.sciencedirect.com/science/article/pii/S0957417423023898 摘要: 人口统计信息是推荐系统(RSs)的关键…

机器学习(四)之无监督学习

前言: 前面写了监督学习的几种算法,下面就开始无监督啦! 如果文章有错误之处,小伙伴尽情在评论区指出来(嘿嘿),看到就会回复的。 1.聚类(Clustering) 1.1 概述&#xff…

javaWeb-异常处理和事务管理

异常处理 我们的代码出现异常之后,异常会向上抛出,直到抛给Spring框架,会去响应一个错误结果 我们要想处理异常,可以在Controller的方法中去捕获异常,但这样做很繁琐,常常我们会定义一个全局异常处理器来…

每日两题 / 438. 找到字符串中所有字母异位词 238. 除自身以外数组的乘积(LeetCode热题100)

438. 找到字符串中所有字母异位词 - 力扣&#xff08;LeetCode&#xff09; 记录p串每个字符出现次数 维护与p串等长的滑动窗口&#xff0c;记录其中每个字符的出现次数 每次滑动后将当前次数与p串的次数比较即可 class Solution { public:vector<int> findAnagrams(s…

Java——继承与组合

和继承类似, 组合也是一种表达类之间关系的方式, 也是能够达到代码重用的效果。组合并没有涉及到特殊的语法 (诸如 extends 这样的关键字), 仅仅是将一个类的实例作为另外一个类的字段。 继承表示对象之间是is-a的关系&#xff0c;比如&#xff1a;狗是动物&#xff0c;猫是动…

API接口的用途以及接入示例

API接口的主要用途是允许不同的软件系统之间进行通信和数据交换。具体来说&#xff0c;API接口可以用于以下几个方面&#xff1a; 数据传输和交换&#xff1a;API接口可以用于不同系统之间的数据传输和交换&#xff0c;例如将数据从一个系统传递到另一个系统&#xff0c;或者从…

Modbus转Profinet网关接称重设备与工控机通讯

Modbus转Profinet网关&#xff08;XD-MDPN100&#xff09;是一种能够实现Modbus协议和Profinet协议之间转换的设备。Modbus转Profinet网关可提供单个或多个RS485接口&#xff0c;使得不同设备之间可以顺利进行通信&#xff0c;进一步提升了工业自动化程度。 通过使用Modbus转Pr…

Linux加强篇-Vim编辑器

目录 ⛳️推荐 Vim文本编辑器 编写简单文档 配置主机名称 配置网卡信息 配置软件仓库 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 Vim文本编辑器 在Linux系统中一切都…

嵌入式面试-回答UART

说明&#xff1a; 此文章是在阅读了一些列面试相关资料之后对于一些常见问题的整理&#xff0c;主要针对的是嵌入式软件面试中涉及到的问答&#xff0c;努力精准的抓住重点进行描述。若有不足非常欢迎指出&#xff0c;感谢&#xff01;在总结过程中有些答案没标记参考来源&…

【Camera Sensor Driver笔记】五、点亮指南之Actuator配置

<slaveInfo> actuatorName dw9714v dirver IC 型号 slaveAddress 0x18 i2c write address i2cFrequencyMode FAST i2c 操作频率(400KHz) actuatorType VCM/BIVCM 马达类型 BIVCM&#xff08;中置马达&#xff…

一个小时学习javaScript

1 简介 1.1 什么是javascript JavaScript 是一种广泛使用的编程语言&#xff0c;最初被设计来增加网页的交互性&#xff0c;让用户能够与网页上的元素进行互动。自从1995年被引入以来&#xff0c;JavaScript已经发展成为Web开发中不可或缺的一部分&#xff0c;并且其用途已经…

qdbus

qdbus ## 一些简单的使用<font color red>(重要)QtDBus编程1、创建服务并创建对象2、通过QDBusMessage访问Service3、通过QDBusInterface 访问Service4、从D-Bus XML自动生成Proxy类5、使用Adapter注册Object6、自动启动Service qdbus是对dbus的进一步封装&#xff0c;d…

MS1000TA超声波测量模拟前端

产品简述 MS1000TA 是一款超声波测量模拟前端芯片&#xff0c;广 泛应用于汽车工业和消费类电子。该芯片具有高度 的灵活性&#xff0c;发射脉冲个数、频率、增益及信号阈值 均可配置。同时&#xff0c;接收通道参数也可以灵活配置&#xff0c; 从而适用于不同尺寸容器、不…