ID 556966 - NetworkMaterialCreate Nodes created in older versions of Katana error when opened in 6.0v3

Follow

Problem summary
NetworkMaterialCreate Nodes created in older versions of Katana error when opened in 6.0v3
 
Customer reported version
Katana 6.0v3
 
Customer reported platform
n/a
 
Steps to reproduce
 
1) Download the attached project: network_material_create_error.katana

2) Open Katana 6.0v3 and the downloaded project.

3) Set the view flag (v) on the NetworkMaterialCreate node, expand the scene graph and observe the following error: 'NoneType' object has no attribute 'getNumConnectedPorts'
 
Expected behaviour
The NetworkMaterialCreate node is able to exist between several versions of Katana.
 
Actual behaviour
The NetworkMaterialCreate node creates the following error: 'NoneType' object has no attribute 'getNumConnectedPorts' when changing between Katana versions.
 
Workaround
The following script can be run in any 6.0v3 project you are experiencing the error in.
def GetNodeFromParam(node, parameterName):     if not node:         return None     nodeNameParam = node.getParameter(parameterName)     if not nodeNameParam:         return None     result = NodegraphAPI.GetNode(         nodeNameParam.getValue(NodegraphAPI.GetCurrentTime()))     return result ​ def upgradeNMX(node):     print("Checking node:", node.getName())     materialSoloingMerge = GetNodeFromParam(node, "__node_materialSoloingMerge")     port = materialSoloingMerge.getInputPortByIndex(0)     if not port:         return     connectedPort = port.getConnectedPort(0)     if not connectedPort:         return     needsUpgrade = connectedPort.getNode().getType() == "NonpersistentSwitch"     preferredInputAttributesParam = materialSoloingMerge.getParameter('advanced.preferredInputAttributes.name.i0') ​     if needsUpgrade:         print("Upgrading node:", node.getName())         preferredInputAttributesParam.setValue("soloMaterial", 0.0)         materialSoloingMerge.getInputPorts()         portToRemove = materialSoloingMerge.getInputPorts()[1]         firstPort = materialSoloingMerge.addInputPortAtIndex("i0", 0)         firstPort.connect(portToRemove.getConnectedPorts()[0])         materialSoloingMerge.removeInputPort(portToRemove.getName()) ​ ​ nodes = NodegraphAPI.GetAllNodes() for node in nodes:     if node.getType() in ["NetworkMaterialCreate", "NetworkMaterialEdit"]:         upgradeNMX(node)
 
Reproduced by support
This bug has been reproduced in:
Katana 6.0v3 - Windows 11 | CentOS7
 
Unable to reproduce bug in:
Katana 6.0v2 - Windows 11 | CentOS7
 
Earliest version tested
Katana 6.0v2 - This issue doesn't appear in this version and has regressed
 

 

    We're sorry to hear that

    Please tell us why