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);


本文探讨了在Revit中获取材质ID的三种方法:通过face.materialId或mesh.MaterialElementId;通过curElement.GetMaterialIds(false);以及利用IExportContext接口结合MaterialNode和PolyMeshNode。每种方法都有其局限性,如返回无效ID(-1)或无法直接关联到具体的几何元素。

3949

被折叠的 条评论
为什么被折叠?



