This seems to work:
"""Name-en-US: Solo VORLAGEN Layer
Description-en-US: Toggle's the Vorlagen layer's Solo state.
"""
import c4d
def find_vorlagen_layer(root):
# Warning: This will only work if "VORLAGEN" is a top-level layer
# as we don't iterate the child layers.
for layer in root.GetChildren():
if "VORLAGEN" in layer.GetName():
return layer
return None
def toggle_layer_solo(layer):
# source
# https://www.youtube.com/watch?app=desktop&v=Uboqi5jQDTU
layer_data = layer.GetLayerData(doc)
# Toggle the layer's Solo state.
layer_data["solo"] = not layer_data["solo"]
layer.SetLayerData(doc, layer_data)
c4d.EventAdd()
#c4d.CallCommand(12147) # Update Screen
def main():
doc = c4d.documents.GetActiveDocument()
layer_root = doc.GetLayerObjectRoot()
vorlagen_layer = find_vorlagen_layer(layer_root)
if vorlagen_layer:
toggle_layer_solo(vorlagen_layer)
c4d.EventAdd()
# Execute main()
if __name__ == '__main__':
main()