you are almost there, you need yo enclose what you have in the Transaction in a loop to go through your elements:
with revit.Transaction('what you are doing'):
for element in cable_tray_collector:
param = element.LookupParameter("your_recipient_param_name")
param_data = element.LookupParameter("your_source_param_name").AsValueString()
param.Set(param_data )
you might have to convert param_data to integer or number: param.Set(int(param_data))
- some explainations about revit lookup and getting parameter values
How to use the same unit of measure in Revit and pyRevit? - #2 by Jean-Marc