revit二次开发——三种获取材质id的方式与差异

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值