Assigning a Material using Pymel

In the end this worked:


def shaderCreateAssignSelected():
    
    myObj=pma.ls(sl=1)[0]
    faceList=myObj.f
    
    shader='ass'
    shader=pma.shadingNode('lambert',name=shader,asShader=1)
    sg=pma.sets(renderable=1,noSurfaceShader=1,empty=1,name=shader+'_SG')
    pma.connectAttr( shader + ".outColor",sg + ".surfaceShader",force=1)
    pma.sets(sg,edit=1,forceElement=faceList)



def shaderCreationFail_01():    
    myObj=pma.ls(sl=1)[0]
    faceList=myObj.f
    shader='ass'
    shader=pma.createNode('lambert', name=shader)    
    sg = pma.createNode('shadingEngine', name=shader+'_SG')
    pma.connectAttr( shader + ".outColor",sg + ".surfaceShader",force=1)
    pma.sets(sg,edit=1,forceElement=faceList)

Errors:
# Warning: Cannot add the following items to the set since the set has restrictions on membership: ass_SG # 
# Warning: None of the items can be added to the set #