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)第二节 基础接口分享相关推荐

  1. pythoncad二次开发视频_revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档...

    二次开发 revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档2019-07-08赞( 0 ) 记录一下CAD二次开发的一些简单实例. 1.helloworld ...

  2. 聚播微信群控云控引擎二次开发SDK服务端对接接口

    聚播微信群控云控引擎二次开发SDK服务端对接接口 case HeartBeatReq: {// 客户端发送的心跳包heartBeatReqHandler.handleMsg(ctx, msgVo);b ...

  3. (一)Bentley(OBD)二次开发-建筑对象的构件结构

    一.前言说明 OBD是Bentley的BIM平台,基于建筑领域的再次包装.前身的版本是ABD(32位的软件系统),由于跟不上时代的发展,在2019年升级发展为64位的OBD软件平台. 二.墙.梁等建筑 ...

  4. python二次开发bim软件_BIM软件的二次开发有哪些工具?API工具你用过吗?

    今天跟大家聊一聊api二次开发的问题,在传统的CAD软件或者现有的BIM软件都涉及到一个软件内核的问题.因为内核软件多由外国开放的,针对该软件所适应的设计规范往往都是内置了外国的设计规范,而国内不能过 ...

  5. nx二次开发c语言,NX二次开发-UFUN API函数编程基础

    1.NXOpen C 的函数 函数名称的约定 NX Open C 共有2类名称约定:一个是标准的NX Open C 的函数名称约定:另一个是以前版本的原有的名称约定. 1.标准名称约定 [格式]UF_ ...

  6. SolidWorks二次开发语法技巧及基础

    语法: //变量 'HRESULT  接口返回值 用于异常调用时判断  本质 typedef LONG HRESULT; 32位 S_OK S_FALSE 'OLECHAR 特定平台上表示文本数据 w ...

  7. 【WPF开发】第二节 登录界面(P3)

    系列文章目录 第一节 项目创建(P2) 第二节 登录界面(P3) 文章目录 系列文章目录 前言 一.操作步骤 1.操作命令 1)修改页面布局 1)定位位置 2)添加属性 3)修改属性 2)具体操作看老 ...

  8. 微信网页开发(4)--使用JSSDK基础接口

    点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. JSSDK接口 2. 基础接口 3. 开发流程 3.1 绑定域名 3.2 引入JS文件 3.3 通过co ...

  9. 个人微信号二次开发的实现,api接口

    各位兄弟姐妹们大家好!!!! 我又瞧到了好玩的微信机器人分享给大家! 社群运营这几年风头正盛,不能落伍啊,我们也赶紧组建了社群. 但是微信群还是社交属性为主的,当我们运营多个社群的时候会发现效率过低, ...

最新文章

  1. SQL Server游标的使用
  2. 一篇不一样的docker原理解析 提高篇
  3. python交互式数据可视化_python数据可视化工具
  4. 复杂性思维中文第二版 六、生命游戏
  5. 阶段1 语言基础+高级_1-2 -面向对象和封装_1面向对象思想的概述
  6. 【tensorRT文档翻译】7. Working With Dynamic Shapes
  7. Android Paint中setTextSize
  8. max3490esa_max3490中文资料
  9. 两台计算机怎样共享一台打印机共享文件夹,二台不同系统电脑怎么样共享一台打印机...
  10. 实例详解 LaTeX 写学术论文
  11. 深度学习:图像的卷积原理和本质(详解)。
  12. 全面认识Scratch少儿编程
  13. 台州银行信息科技部笔试与面试经验总结
  14. 2019 南昌网络赛D FFT多个多项式相乘
  15. 【vmware安装后,没有虚拟网卡,设备管理器里面VMnet1和VMnet8有黄色感叹号。】
  16. ios 调整麦克风音量_iOS 音量柱的实现(mic 采集的声音DB反映成音量柱)
  17. 基础操作--Ubuntu常用命令
  18. 一个实时监控edusrc上那些学校存在什么漏洞的脚本
  19. 嵌入式开发不用写文档?
  20. Loadrunner 录制手机App脚本多种方法介绍

热门文章

  1. 采用GlodWave软件制作个性化铃声
  2. pdf、caj转换成word文档(最新最有效的方法)
  3. BackTrack5 学习笔记2 常用工具
  4. 如何理解泰勒展开式,他有何用途?
  5. OCR 图像智能字符识别技术
  6. jsf取js变量_JSF页面中的JS取得受管bean的数据(受管bean发送数据到页面)
  7. 【代码迁移】Git动态更换版本仓库
  8. 帮忙写一份2022年医院信息科年度工作汇报
  9. ffmpeg去除水印
  10. 4.5 拉普拉斯定理