1.通过face.materialId或mesh.MaterialElementId获取材质id
但有些为null,-1(即为无效材质,其实是有值的但取不到,需要另寻获取对应材质的办法)
2.通过curElement.GetMaterialIds(false)获取元素的所有材质id
与face/mesh无法关联,部分id为InvalidElementId无效id(-1)
3.通过revit自带导出接口IExportContext
利用MaterialNode,node.MaterialId取到材质材质id(id可能InvalidElementId无效id),但通过node.color可以取得颜色。
通过PolyMeshNode获取对应的mesh/face节点,完整几何与材质对应关系。
curMaterialName = string.Format("r{0}g{1}b{2}a{3}", node.Color.Red.ToString(),
node.Color.Green.ToString(), node.Color.Blue.ToString(), alpha);