Skip to main content
Bounty Awarded with 50 reputation awarded by NeverConvex
added 11 characters in body
Source Link
Moog
  • 2.3k
  • 14
  • 18

Fully recursive and optionally case-sensitive:

import bpy def sort_collection(collection, case = False): if collection.children is None: return children = sorted ( collection.children, key = lambda c: c.name if case else c.name.lower() ) for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) # case_sensitive sort, (default is False) case_sensitive = True for scene in bpy.data.scenes: sort_collection(scene.collection, case_sensitive) 

Fully recursive and case-sensitive:

import bpy def sort_collection(collection, case = False): if collection.children is None: return children = sorted ( collection.children, key = lambda c: c.name if case else c.name.lower() ) for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) # case_sensitive sort, (default is False) case_sensitive = True for scene in bpy.data.scenes: sort_collection(scene.collection, case_sensitive) 

Fully recursive and optionally case-sensitive:

import bpy def sort_collection(collection, case = False): if collection.children is None: return children = sorted ( collection.children, key = lambda c: c.name if case else c.name.lower() ) for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) # case_sensitive sort, (default is False) case_sensitive = True for scene in bpy.data.scenes: sort_collection(scene.collection, case_sensitive) 
Added case-sensitive argument
Source Link
Moog
  • 2.3k
  • 14
  • 18

Fully recursive and case-sensitive:

import bpy def sort_collection(collection, case = False): if collection.children is None: return children = sorted (  collection.children,  key = lambda c: c.name if case else c.name.lower()  )  for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) # case_sensitive sort, (default is False) case_sensitive = True for scene in bpy.data.scenes: sort_collection(scene.collection, case_sensitive) 

Fully recursive and case-sensitive:

import bpy def sort_collection(collection): if collection.children is None: return children = sorted ( collection.children, key = lambda c: c.name) for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) for scene in bpy.data.scenes: sort_collection(scene.collection) 

Fully recursive and case-sensitive:

import bpy def sort_collection(collection, case = False): if collection.children is None: return children = sorted (  collection.children,  key = lambda c: c.name if case else c.name.lower()  )  for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) # case_sensitive sort, (default is False) case_sensitive = True for scene in bpy.data.scenes: sort_collection(scene.collection, case_sensitive) 
added 2 characters in body
Source Link
Moog
  • 2.3k
  • 14
  • 18

Fully recursive and case-sensitive:

import bpy def sort_collection(collection): if collection.children is None: return children = sorted ( collection.children, key = lambda c: c.name) for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) for scene =in bpy.contextdata.scene scenes:  sort_collection(scene.collection) 

Fully recursive and case-sensitive:

import bpy def sort_collection(collection): if collection.children is None: return children = sorted ( collection.children, key = lambda c: c.name) for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) scene = bpy.context.scene  sort_collection(scene.collection) 

Fully recursive and case-sensitive:

import bpy def sort_collection(collection): if collection.children is None: return children = sorted ( collection.children, key = lambda c: c.name) for child in children: collection.children.unlink(child) collection.children.link(child) sort_collection(child) for scene in bpy.data.scenes:  sort_collection(scene.collection) 
Source Link
Moog
  • 2.3k
  • 14
  • 18
Loading