RhinoCommon: unable to get RenderMaterial of object

By the way, when obj.RenderMaterial gives you None then no material has been assigned, and you should use the default material. This is just an instance of the default plaster material. Here a small update with default material usage:

#! python3

import Rhino
import Rhino.Render

defaultRenderMaterial = Rhino.Render.RenderContentType.NewContentFromTypeId(Rhino.Render.ContentUuids.PlasterMaterialType)

objTypesFilter = Rhino.DocObjects.ObjectType.Brep & Rhino.DocObjects.ObjectType.Mesh
rc, objRef = Rhino.Input.RhinoGet.GetOneObject( "Select object", False, objTypesFilter )

obj = objRef.Object()

renderMaterial = obj.RenderMaterial

if not renderMaterial:
    renderMaterial = defaultRenderMaterial

print(renderMaterial)
1 Like