Python: oggetto copiato non visualizzato in Outliner
Quando copio un oggetto usando bpy.context.active_object.copy()
il nuovo oggetto non viene visualizzato in Outliner anche se appare quando eseguo list()
oggetti nella shell Python.
Domande:
- C'è un secondo passaggio per mostrare l'oggetto nell'Outliner ?
- O forse sta solo copiando i dati dell'oggetto? (Se sì, a quale scopo?)
- Non ci sono funzioni complementari, ad esempio: paste() e/o cut()? (Il completamento della riga di comando non produce nulla.)
Nota: bpy.ops.object.duplicate()
crea una copia che viene visualizzata in Outliner , quindi queste domande non riguardano come creare una copia/duplicato funzionante. Voglio capire lo scopo di copy()
.
Risposte
Collegalo a una raccolta
Prima della 2.8 un oggetto copiato richiedeva il collegamento alla raccolta di oggetti della scena. Per 2.8+ collegalo a una raccolta.
Verrà visualizzato nel contorno quando la raccolta è collegata a una scena o è la raccolta di scene di base.
L'operatore duplicato collega il duplicato alla raccolta di contesto.
import bpy
from bpy import context
ob = context.object.copy()
context.collection.objects.link(ob)
collegare un nuovo oggetto alla scena con Python in 2.8