最近在公司正在做一个关于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博客中的这篇文章.