Bentley ORD(openroads designer) 二次开发(BIM)第二节 基础接口分享
Bentley ORD(openroads designer) 二次开发(BIM)第二节 基础接口分享
CoderLPF 2021-01-25 07:37:54 89 已收藏 1
分类专栏: Bentley ORD 二次开发 系列文章
版权
目录
- 前言
- 1、命名空间
- Bentley.GeometryNET
- Bentley.DgnPlatformNET.Elements
- MdlUtility
- 2、项目预备
前言
本系列文章第一节参考 Bentley ORD(openroads designer) 二次开发(BIM)第一节 环境配置
本节主要进行ORD SDK通用方法的介绍,包括创建基本的元素、SDK常用命名空间及相关接口的使用示例,如有不妥,欢迎大家在评论区修改补充
1、命名空间
主要介绍最基本的三个命名空间,分别是Bentley.GeometryNET、Bentley.DgnPlatformNET.Elements、MdlUtility。
Bentley.GeometryNET
该命名空间主要定义Bently开发包中最基本的图形元素,包括角度、二维点、三维点、二维向量、三维向量等元素,这些元素是构成后续复杂图形(包括线段、弧段、复杂链、面等)的必须的基本元素。
角度Angle
// 弧度与角度转换 Angle.DegreesToRadians(double degress); Angle.RadiansToDegrees(double radians); // 常量 Angle.PI; // 常用三角函数 Angle.Acos; Angle.Asin; Angle.Atan;Angle.Atan2; // 角度自身三角函数运算 Angle angle = new Angle(); angle.Cos; angle.Sin; angle.Tan;
二维点 DPoint2d
// 定义 DPoint2d point = new DPoint2d(double ax, double ay); // 运算 是否同一个点 DPoint2d.Equals(DPoint2d left, DPoint2d right);// 静态方法 bool Equals(DPoint2d other); // 实例方法 // 运算 求距离 double Distance(DPoint2d target);
三维点 DPoint3d
// 定义 DPoint3d point = new DPoint3d(double ax, double ay, double az); // 运算 是否同一个点 DPoint3d.Equals(DPoint3d left, DPoint3d right);// 静态方法 bool Equals(DPoint3d other); // 实例方法 // 运算 求距离 double Distance(DPoint3d target);
二维向量 DVector2d
// 定义 DVector2d v = new DVector2d(DPoint2d origin, DPoint2d target); DVector2d v = new DVector2d(double ax, double ay);
三维向量 DVector3d
// 定义 DVector3d v = new DVector3d(DPoint3d origin, DPoint3d target); DVector3d v = new DVector3d(double ax, double ay, double az);
Bentley.DgnPlatformNET.Elements
该命名空间主要定义在绘图空间形成的各类元素,其所有类均继承于Element。常见的元素类型包括线段、弧段、复杂多段线、面、复杂面及各类三维立体元素等,是构成各类复杂模型的基本元素。
线段 LineElement
线段元素,由两点组成的绘图元素,创建方法见下一个小节
弧段 ArcElement
弧段元素,由圆心、起终点或角度绘制而成,创建方法见下一个小节
其他元素创建方法与线 弧段创建方法一致,具体见下一小节内容。
通用元素类 Element
MdlUtility
该命名空间主要提供绘制元素的创建工具,具体包括二维空间元素工具TwoDElementTools、三维空间元素工具ThreeDElementTools,主要用于创建空间各种元素,具体如下:
TwoDElementTools
// 创建圆弧 CreateArcElement1(DPoint3d startPoint, DPoint3d centerPoint, DPoint3d endPoint, bool isMajor);// 起点、终点、圆心,major暂时未弄清楚 CreateArcElement2(DPoint3d CenterPoint, double PrimaryRadius, double SecondaryRadius, DMatrix3d Rotation, double StartAngle, double SweepAngle);// 圆心、主半径、第二半径、旋转法线、初始角度、圆弧角度 // 创建线元素 CreateLineElement1(List<DPoint3d> managedPoints);// 线段折点 CreateLineElement2(DPoint3d startPoint, DPoint3d endPoint);// 线段起终点 // 创建面元素 CreateShapeElement1(List<DPoint3d> managedPoints, MsdFillMode FillMode);// 多边形折点、填充模式 // 创建复杂链 CreateComplexLineElement(List<Element> eles);// 首尾相接的元素列表 // 创建复杂面 CreateComplexShapeElement(List<Element> eles, MsdFillMode FillMode);// 根据首尾相接的元素列表,创建多边形元素 /***************以上函数返回类型均为Element********************/ // 获取元素起终点 GetStartAndEndPoint(Element curve, ref DPoint3d StartPoint, ref DPoint3d EndPoint);
ThreeDElementTools
// TODO List // 三维空间实体元素创建工具暂不做详细介绍,后续会根据开发情况逐步补充完善
2、项目预备
本系列文章基于隧道设计断面绘制项目为实例进行经验总结及分享,过程中会用到以上介绍的相关命名空间及接口函数,同时还需要有一定额数学几何分析能力,主要包含以下:
点、线、面关系,相切、相交等等
三角函数应用
相似三角形原理
法向、矩阵、向量等概念
三维几何空间概念
关注以下公众号,关注各种技术文章,获取本系列后续推送与分享
Bentley ORD(openroads designer) 二次开发(BIM)第二节 基础接口分享相关推荐
- pythoncad二次开发视频_revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档...
二次开发 revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档2019-07-08赞( 0 ) 记录一下CAD二次开发的一些简单实例. 1.helloworld ...
- 聚播微信群控云控引擎二次开发SDK服务端对接接口
聚播微信群控云控引擎二次开发SDK服务端对接接口 case HeartBeatReq: {// 客户端发送的心跳包heartBeatReqHandler.handleMsg(ctx, msgVo);b ...
- (一)Bentley(OBD)二次开发-建筑对象的构件结构
一.前言说明 OBD是Bentley的BIM平台,基于建筑领域的再次包装.前身的版本是ABD(32位的软件系统),由于跟不上时代的发展,在2019年升级发展为64位的OBD软件平台. 二.墙.梁等建筑 ...
- python二次开发bim软件_BIM软件的二次开发有哪些工具?API工具你用过吗?
今天跟大家聊一聊api二次开发的问题,在传统的CAD软件或者现有的BIM软件都涉及到一个软件内核的问题.因为内核软件多由外国开放的,针对该软件所适应的设计规范往往都是内置了外国的设计规范,而国内不能过 ...
- nx二次开发c语言,NX二次开发-UFUN API函数编程基础
1.NXOpen C 的函数 函数名称的约定 NX Open C 共有2类名称约定:一个是标准的NX Open C 的函数名称约定:另一个是以前版本的原有的名称约定. 1.标准名称约定 [格式]UF_ ...
- SolidWorks二次开发语法技巧及基础
语法: //变量 'HRESULT 接口返回值 用于异常调用时判断 本质 typedef LONG HRESULT; 32位 S_OK S_FALSE 'OLECHAR 特定平台上表示文本数据 w ...
- 【WPF开发】第二节 登录界面(P3)
系列文章目录 第一节 项目创建(P2) 第二节 登录界面(P3) 文章目录 系列文章目录 前言 一.操作步骤 1.操作命令 1)修改页面布局 1)定位位置 2)添加属性 3)修改属性 2)具体操作看老 ...
- 微信网页开发(4)--使用JSSDK基础接口
点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. JSSDK接口 2. 基础接口 3. 开发流程 3.1 绑定域名 3.2 引入JS文件 3.3 通过co ...
- 个人微信号二次开发的实现,api接口
各位兄弟姐妹们大家好!!!! 我又瞧到了好玩的微信机器人分享给大家! 社群运营这几年风头正盛,不能落伍啊,我们也赶紧组建了社群. 但是微信群还是社交属性为主的,当我们运营多个社群的时候会发现效率过低, ...
最新文章
- SQL Server游标的使用
- 一篇不一样的docker原理解析 提高篇
- python交互式数据可视化_python数据可视化工具
- 复杂性思维中文第二版 六、生命游戏
- 阶段1 语言基础+高级_1-2 -面向对象和封装_1面向对象思想的概述
- 【tensorRT文档翻译】7. Working With Dynamic Shapes
- Android Paint中setTextSize
- max3490esa_max3490中文资料
- 两台计算机怎样共享一台打印机共享文件夹,二台不同系统电脑怎么样共享一台打印机...
- 实例详解 LaTeX 写学术论文
- 深度学习:图像的卷积原理和本质(详解)。
- 全面认识Scratch少儿编程
- 台州银行信息科技部笔试与面试经验总结
- 2019 南昌网络赛D FFT多个多项式相乘
- 【vmware安装后,没有虚拟网卡,设备管理器里面VMnet1和VMnet8有黄色感叹号。】
- ios 调整麦克风音量_iOS 音量柱的实现(mic 采集的声音DB反映成音量柱)
- 基础操作--Ubuntu常用命令
- 一个实时监控edusrc上那些学校存在什么漏洞的脚本
- 嵌入式开发不用写文档?
- Loadrunner 录制手机App脚本多种方法介绍