0
$\begingroup$

I'm a new Blender user and just started trying python. I want to apply Mark freestyle edge to all objects in a collection with code instead of doing it manually.

If I have objects selected in object mode & used the code below it works:

import bpy

for obj in bpy.context.selected_objects:

    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.select_all(action='SELECT')

    bpy.ops.mesh.mark_freestyle_edge(clear=False)

I'll like to do the same but without having to select objects first. I found this but I can't combine them into one script.

import bpy


col = bpy.data.collections.get("Collection_name")
if col:
   for obj in col.objects:
       obj.select_set(state=True)

Thanks,

$\endgroup$
0
$\begingroup$

I did some more research and found the solution.

import bpy

for obj in bpy.data.collections['wireframe'].all_objects: obj.select_set(True)

bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action='SELECT')

bpy.ops.mesh.mark_freestyle_edge(clear=False)
|improve this answer|||||
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.