可能需要用到的头文件:#include "BmElement.h";#include "BmElement.h";#include "BmGElement.h";#include "BmGeometry.h";#include "BmGInstance.h";#include "BmFace.h";#include "BmEdge.h";

1、首先拿到元素,这里就不介绍了另写一篇关于过滤器获取元素的。

OdBmElementPtr elem;

2、获取Geometry

OdBmObjectPtr pGeom = elem->getGeometry();

//判断pGeom是否是OdBmGElement类型

if(pGeom->isA() == OdBmGElement::desc())
{
//如果是则继续获取几何信息
}

3、遍历pGeom找几何信息,有revit编程经验的可以参考revit中C#代码获取几何信息的思路

//dLevelOfDetail的值为0到1;
void GetMeshOfGeometry(const OdBmGGroupPtr& pGGroup, const double dLevelOfDetail, OdArray<GeMesh::OdGeTrMesh>& arrMesh)
{for (OdBmGNodePtr pGNode : pGGroup->newGNodeIterator()){if (pGNode->isKindOf(OdBmGGroup::desc())){GetMeshOfGeometry(pGNode, dLevelOfDetail, arrMesh);}else if (pGNode->isA() == OdBmGeometry::desc()){const OdBmGeometry* pGeometry = static_cast<const OdBmGeometry*>(pGNode.get());//获取faceOdBmFacePtrArray arrFaces;pGeometry->getFaces(arrFaces);for (auto pFace : arrFaces){GeMesh::OdGeTrMesh mesh;
//从fece中获取meshOdResult res = pGeometry->getFaceMesh(mesh, pFace, dLevelOfDetail);if (res == eOk)arrMesh.append(mesh);}}else if (pGNode->isA() == OdBmGInstance::desc()){
//如果是自定义族实例会进到这里,对比revit.net编程中的GeometryInstanceOdBmGeometryOptions opts;//opts.setComputeReferences(false);OdBmGInstancePtr pGInstance = pGNode;OdBmObjectPtr pObjRes2;if (eOk == pGInstance->getGeometry(opts,pObjRes2)) {
//pGElement 对比revit.net编程中的GeometryElementOdBmGElementPtr pGElement = pObjRes2;GetMeshOfGeometry(pGElement, dLevelOfDetail, arrMesh);//OdBmGNodeIteratorPtr iter = pGElement->newGNodeIterator();}}}
}

VC++ 获取Revit元素的几何信息相关推荐

  1. Revit开发读取CAD信息

    在Revit里链接的CAD通过API 能获取到到图层信息和图层里的几何信息 文字信息目前应该是还获取不到的 几何信息可以直接通过Geometry来获取 图形信息可以通过GeometryObject的G ...

  2. uniapp 获取图片的高度_uni-app获取元素高度等信息,并设置元素top信息

    本文主要简介uni-app获取元素信息及设置信息等 获取元素高度 可查看官方文档 mounted() { const query = uni.createSelectorQuery().in(this ...

  3. 示例 - 10行代码在C#中获取页面元素布局信息

    最近研究一个如何在网页定位验证码并截图的问题时, 用SS写了一段C#小脚本可以轻松获取页面任意元素的布局信息 (top, left, width, height). 10行功能代码, 觉得有点用, 现 ...

  4. Leaflet中使用draw绘制时获取图形的几何信息

    场景 Leaflet中使用Leaflet.draw插件实现图形交互绘制和编辑(修改图形坐标点): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/d ...

  5. iframe简单使用 、获取iframe 、获取iframe 元素值 、iframe获取父页面的信息

    文章目录 1.iframe简单使用 2.获取iframe 3.获取iframe 元素值 4.iframe获取父页面的信息: 1.iframe简单使用 <iframe> 标签规定一个内联框架 ...

  6. 获取Revit安装版本信息及安装路径

    通过Revit卸载注册表信息.注册表路径如下: 原获取方式:通过Revit卸载注册表获取安装目录.(实践发现Revit安装成功后,卸载注册表信息不存在现象) HKEY_LOCAL_MACHINE\SO ...

  7. [jQuery]无法获取隐藏元素(display:none)宽度(width)和高度(height)的新解决方案

    在做茶城网改版工作的时候,又遇到一个新问题,我需要用jQuery写一个通过点击左右图标来翻阅图片的小插件,写好后测试可以正常运行,但是放到Tab中后发现只有第一个Tab中的代码能够正常运行,其它全部罢 ...

  8. js,jquery获取页面元素距离浏览器工作区顶端的距离

    先介绍几个属性:(暂时只测了IE和firefox,实际上我工作中用到的最多的是chrome)  网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度) (javascript)       ...

  9. VC++获取屏幕大小第二篇 物理大小GetDeviceCaps 上

    上一篇< VC++获取屏幕大小第一篇像素大小GetSystemMetrics >中介绍了使用GetSystemMetrics函数来获取屏幕的像素大小,本篇将介绍使用GetDeviceCap ...

最新文章

  1. [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据...
  2. 给老婆写个Python教程
  3. 025_JavaScript数组方法
  4. 土地利用结构信息熵_科研成果快报第163期:基于市政用水时序数据的城市混合土地利用感知与分析...
  5. rust(67)-rust元组与空元组
  6. arm-linux-gcc编译gtk程序,【又7】Arm 版GTK编译
  7. http 请求(tomcat) 返回 错误页面信息
  8. REVERSE-PRACTICE-JarvisOJ-3
  9. Ubuntu16.4(64位)下gcc-linaro-arm-linux-gnueabihf交叉编译环境安装
  10. Android colorPrimary、colorPrimaryDark、colorAccent详解
  11. 2020 macbook pro 16寸 前端开发 我的装机软件整理
  12. 修炼一名程序员的职业水准
  13. 自己搭建Nas(群晖 or TrueNas)
  14. 【前端】基于layui写的一个高级搜索(筛选)功能
  15. 【Android应用开发技术:媒体开发】音频
  16. UITableViewCell中嵌套UITableView,用UITextView加载HTML数据
  17. 金岩石:陈晓失误已铸成大错
  18. lazada发货_LAZADA怎么发货?lazada发货流程详解
  19. 【0514 更新中】CVPR2019 论文解读汇总
  20. 构建中国云生态 | 华云数据与杉岩数据完成产品兼容互认证 携手满足更多用户海量数据的管理需求

热门文章

  1. springboot毕设项目高校课程知识库系统hd2m4(java+VUE+Mybatis+Maven+Mysql)
  2. 如何建设一个视频网站
  3. 记某hw中遇到的cms(PageAdmin CMS)渗透过程
  4. 计算机技术与软件技术资格(水平)考试(软考)
  5. 前端实现每天只能签到一次
  6. iOS开发编译报错“No “iOS Development” signing certificate matching team ID “XXXXXXX””的解决方法
  7. 网络摄像头监控中什么情况下需要使用流媒体转发服务器?
  8. 2016年十大事件盘点:这一年我们经历了什么?
  9. 列车运行图编制系统/列车运行图绘制系统(C#)
  10. 记一次网站故障排查过程(nginx 504状态码、 upstream timed out (110: Connection timed out)以及jbd2引起IO高