Dear Dan,
Thank you for your query and the pointer to the related discussion thread.
The thread you refer to contains one hint which is still valid, right at the end:
You can use the reload functions which take an ExternalResourceReference argument, not the ones which take a path. The complicated bit here is that every provider determines their own internal structure for ExternalResourceReference, so you need to figure it out by calling GetExternalResourceReference on existing A360 links.
Another related thread is this one on ExternalResourceReferences change information and reload it:
https://forums.autodesk.com/t5/revit-api-forum/externalresourcereferences-change-information-and-rel...
Oh no, that is not the one I was after... hang on...
Here it is:
https://forums.autodesk.com/t5/revit-api-forum/changing-a-cloud-revit-link-to-local-revit-link-revit...
In that thread, David Rock describes how to change a cloud Revit link to a local one using the ExternalResourceReference.CreateLocalResource method.
Oh dear, that is more or less the opposite of what you are asking for, isn't it?
Do you wish to move your local Revit model to BIM360 cloud storage?
Why don't you just go the easy path of using the Forge API to upload it there?
There are lots of examples showing how that can be done.
Once it is in cloud storage, the other, existing discussion threads show how you can get it back to local again.
Maybe it just is that simple, and that is the reason there are fewer threads asking the question you are tackling?
I hope this helps.
Best regards,
Jeremy