я тоже задавался этим вопросом, но потом просто смирился. Единственный способ, тот что я написал выше. Другого я не знаю.
Хотя может кто то уже написал подобный скрипт.
Можешь пойти дальше и найти способ удаления подобъектов с оставлением материнсткого. Наоборот легко, а так....хз. Вроде нет такого инструмента.
Написал:
import c4d
from c4d import gui
def main():
c4d.CallCommand(100004820) # Copy
c4d.CallCommand(100004821) # Paste
obj = doc.GetActiveObject()# New Object
doc.SetActiveObject(obj.GetDown()) #Select Children
c4d.CallCommand(12109) #Delete Children
doc.SetActiveObject(obj) #Select New Object
c4d.CallCommand(100004820) # Copy New Object
c4d.CallCommand(12109) #Delete New Object
if name=='main':
main()