Mil disculpas por haber puesto en duda tu solución, tenia un pequeño pero grave error de concepto, creia que lo que estaba haciendo al hacer
Código PHP:
public function __construct($parent){
$this->parent=$parent;
}
Era algo así como "duplicar" el objeto ciudad1 dentro del propio objeto edificio1, con lo que aunque si podía acceder a las propiedades del padre en realidad estaba accediendo al duplicado, por lo que si editaba una propiedad del "duplicado" no se cambiaría en efecto en el objeto real $ciudad1, pero todo lo contrario. Muchísimas gracias por tu ayuda, si llego a empezar a hacer algo con mi "solución" y luego me doy cuenta de que se hacia con la tuya habría tenido que por lo menos tirarme de un puente o algo parecido.
Un saludo.