State:Closed|icon_bug|icon_katana|database:public|Resolution:Fixed|TargetRelease:6.0v4|BugID:556966|
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) We're sorry to hear that
Please tell us why