Hello Hannah,
I believe that using API to add multiple related documents at once would be a flexible way of avoiding numerous amount of clicks which would be required if you decided to use UI.
Useful API examples for creating relationships between documents can be found in
Developer's Guide - Managing relationships.
As for getting a custom field value in code, here is a sample code which you can use:
// Create an instance of the Tree provider first
TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);
// Get the document
TreeNode node = tree.SelectSingleNode(CMSContext.CurrentSiteName, "/API-Example/My-new-document", "en-us");
// Get custom field value
String metadata = node.GetValue("metadataField");
// Custom logic for creating relationships
if (metadata == "something")
{
...
}
A complete list of all API methods is in
API Reference.
Best regards,
Filip Ligac