Hey Keith,
Glad to help you here once again! You are raising interesting points here…
This functions args point to the tribe_create_event description so they are outdated as well! The ticket to update this docs is already created and surely be fixed soon 🙂
In this case the use case is a bit trickier, and in cases like this it’s usually necessary to dig a bit into the code to understand how it works and validates data. In this particular case the venue get’s changed if Venue is defined in the $args array, there also has to be a VenueID inside of Venue. Finally it’s necessary to have any other venue field defined as well. So for example you can do the following:
$event_id = 161;
$venue_id = 38;
$args['Venue']['VenueID'] = $venue_id;
$args['Venue']['post_title'] = tribe_get_venue( $venue_id );
tribe_update_event ( $event_id, $args );
The post_title param is just for the validation to pass.
Please give the code a try and let me know about it,
Best,
Nico