To collect all rebar in host you can simply use the class RebarHostData
var data = Autodesk.Revit.DB.Structure.RebarHostData.GetRebarHostData(host); var allRebar = data.GetRebarsInHost();
Copy Rebar can be challenging, specially if you consider different kinds of host Elements and Reinforcement objects. But if you want to focus in very specific cases then you could use ElementTransformUtils.CopyElements(...) methods.