41

How can I assign a new material to an object in the scene via Python?

ideasman42
  • 47,387
  • 10
  • 141
  • 223
binaryBigInt
  • 1,047
  • 2
  • 10
  • 10

1 Answers1

87

Here you go, code with some safety checks:

import bpy
ob = bpy.context.active_object

# Get material
mat = bpy.data.materials.get("Material")
if mat is None:
    # create material
    mat = bpy.data.materials.new(name="Material")

# Assign it to object
if ob.data.materials:
    # assign to 1st material slot
    ob.data.materials[0] = mat
else:
    # no slots
    ob.data.materials.append(mat)
ideasman42
  • 47,387
  • 10
  • 141
  • 223
Jaroslav Jerryno Novotny
  • 51,077
  • 7
  • 129
  • 218