读取Revit构件的材质


最近在公司正在做一个关于Revit模型展示的工具,需要获取Revit模型信息,然后在自己的3d控件中显示。通过学习,已经可以获取模型的Face,得到Mesh,进而得到三角网格和顶点数组等信息了,所以模型的样子已经可以在自制的控件中显示了,但是现在一直卡在怎么获取模型的颜色或材质上。

 

         之前用的是得到FamilyInstance的MaterialID,但得到的是个ID列表,里面是这个族所有使用到的材质,对于一个指定的FamilyInstance,我怎么得到每个Face是什么颜色或者材质?查询文档后发现 Document类有个方法 ElementId id = m_doc.GetPaintedMaterial(m_idEnt, face);是可以获取指定实体id上的面所使用的Material ID,但是这个函数返回的id总是无效的-1,

 

         现在一抹黑了,麻烦您看到后,能否指点一下方向?应该看哪些类?哪些方法?

 

         万分感谢!!

                                                                                                                                                                                                                                                                                       学生徐帅。


答:

请看下CustomExporter 这个类的用法. 借助这个可以获得构件的材质.

IExportContext..::..OnMaterial 这个方法中获得材质.

更多用法,请看Jeremy博客中的这篇文章.



  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SuperMap是一种地理信息系统(GIS)软件,它可以用于地图制作、地理空间分析和数据管理等任务。Revit是建筑信息模型(BIM)软件,用于设计、建模和管理建筑项目。在进行GIS分析和空间数据处理时,通常需要将Revit中的数据与其他外部数据集集成。 SuperMap具有灵活的数据导入和导出功能,可以直接读取Revit数据。通过SuperMap软件,用户可以将Revit文件导入到GIS项目中,以便进行更深入的空间分析和数据整合。例如,可以在SuperMap中加载Revit文件的建筑模型,与其他地理数据相结合,以获得更全面的地理空间视图。 通过将Revit数据直接读取到SuperMap中,可以获得以下好处: 1. 数据整合性:Revit中的建筑模型可以与其他地理数据一起显示,以创建更完整的数据视图。这有助于更好地理解和分析项目在地理空间上的位置和关系。 2. 空间分析:SuperMap具有强大的空间分析功能,可以对Revit数据进行空间查询、缓冲区分析、路径分析等操作,以获取与地理位置相关的有用信息。 3. 数据管理:通过将Revit数据导入到SuperMap中,可以更好地管理建筑项目的信息。SuperMap提供了灵活的数据管理工具,可以对Revit数据进行查询、编辑和更新。 总而言之,SuperMap可以直接读取Revit数据,从而在GIS项目中集成和分析建筑模型的地理空间信息。这有助于更好地理解建筑项目与周围环境的关系,并支持更好的空间规划和决策制定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值