A couple ways I do it,
Option1
Use the node "Parameter.ByName" not the "ValuebyName" and connect a String node with: "Family" see the attachment "elementnamev1" there is a long explanation for that, but for short just swap the node.
Option2
Create a function:
def getParam(ele, param, listr):
try:
paramt = ele.LookupParameter(param)
para = paramt.AsString()
listr.append(para)
return para
except:
return None
Then call the function with any parameter that has a string value (it doesn't work for numeric values):
TransactionManager.Instance.EnsureInTransaction(doc)
prodname = getParam(<elementID>,"Product Long Description", <name of list you wanted to be added>)
Option3
I call it the cheating way, use the node "Parameters" that list all the parameter of the element, then do a get item at index node to get the value of that specific parameter see attachment elementnamev2, just be careful because only works on element that has the value that you want in the same position (index) or you will get random results, see attachment "elementnamev2"