Collection Utilities

by Duarte Ramos in Addons


Collection Utilities Instalation

  1. To install download the file named Addon_DPFR_CollectionUtilites_#_##.py and save it to a convenient location.
  2. Under Blender got to the Edit menu and open Preferences > Addons.
  3. Press the button on top header that reads Install.
  4. Browse to the location where you saved the downloaded file (like say the Downloads folder of the operating system), and double-click to install it
  5. After installation the addon name will be visible in the list. Enable it with the check box to the left.

If you don't have Autosave Preferences enabled press the Save Preferences button on the bottom left, if you want the addon to remain available for future sessions by default as well.


Create Collections From Objects Usage

Batch collection creation allows you to quickly create collections ready for instancing directly from a bunch of selected objects whose origins already represent the desired collection instance centers.

Go to Object > Collections > Create Collections From Objects and one collection named after the object name will be created for each selected object, and the center set for the position of said object.

Usage

Collections for instancing may contain many objects, since they are often comprised of a multitude of "parts" like Chassis, Windows, Tires and Interiors in in a car asset.

Since a collection is created for each separate object that is selected and centers are automatically set from coordinates of selected objects, you would potentially end up with lots of undesirable parasitic collections being created for each individual part (like Chassis Ferrari, Windows Ferrari, Tires Ferrari) instead of a single Ferrari.

But the whole point of instancing collections is having multiple objects anyway. How would you proceed to include several objects in said automatically created collection then?

Ideally these secondary objects would be parented to their respective "main body" of the collection, and left unselected for the addon to deal with. You woud parent all parts to their respective chassis, and only select the chassis before creating collections.

Parameters

Mode

The Mode parameter controls whether the objects are moved to the new collections (and thus removed from any collections they are current in) or linked (current collections are all kept, in addition to linking to the new ones), simultaneously belonging to multiple ones when the operation finished. This is useful when you already have your scene organized in a certain fashion, and objects already belong to several relevant categories you do not wish to lose.

Say you are creating multiple car assets for instancing, composed of several objects organized into multiple collections like Chassis, Windows, Tires and Interiors.

Scene Collection
  ├ Chassis
  │   ├Chassis Ferrari
  │   ├Chassis Porsche
  │   └Chassis Lamborgini
  ├ Windows
  │   ├Windows Ferrari
  │   ├Windows Porsche
  │   └Windows Lamborgini
  ├ Tires
  │   ├Tires Ferrari
  │   ├Tires Porsche
  │   └Tires Lamborgini
  └ Interiors
      ├Interiors Ferrari
      ├Interiors Porsche
      └Interiors Lamborgini

If you select all cars and batch create collections from them in Move mode. When finished the Chassis, Windows, Tires and Interiors will be empty and all car parts will belong to the new collections like Ferrari, Porsche, Lamborgini etc..

Scene Collection
  ├ Chassis
  ├ Windows
  ├ Tires
  ├ Interiors
  ├ Ferrari
  │   ├Chassis Ferrari
  │   ├Windows Ferrari
  │   ├Tires Ferrari
  │   └Interiors Ferrari
  ├ Porsche
  │   ├Chassis Porsche
  │   ├Windows Porsche
  │   ├Tires Porsche
  │   └Interiors Porsche
  └ Lamborgini
      ├Chassis Lamborgini
      ├Windows Lamborgini
      ├Tires Lamborgini
      └Interiors Lamborgini

If you choose the Linkmode, the original Chassis, Windows, Tires and Interiors will be kept populated and objects will belong to both those original collections and the new ones for each individual car.

Scene Collection
  ├ Chassis
  │   ├Chassis Ferrari
  │   ├Chassis Porsche
  │   └Chassis Lamborgini
  ├ Windows
  │   ├Windows Ferrari
  │   ├Windows Porsche
  │   └Windows Lamborgini
  ├ Tires
  │   ├Tires Ferrari
  │   ├Tires Porsche
  │   └Tires Lamborgini
  ├ Interiors
  │    ├Interiors Ferrari
  │    ├Interiors Porsche
  │    └Interiors Lamborgini
  ├ Ferrari
  │   ├Chassis Ferrari
  │   ├Windows Ferrari
  │   ├Tires Ferrari
  │   └Interiors Ferrari
  ├ Porsche
  │   ├Chassis Porsche
  │   ├Windows Porsche
  │   ├Tires Porsche
  │   └Interiors Porsche
  └ Lamborgini
      ├Chassis Lamborgini
      ├Windows Lamborgini
      ├Tires Lamborgini
      └Interiors Lamborgini

Child

This allows controlling what happens to unselected child objects parented to the "main" being used for collection creation.

Just like in Mode parameter before, they can also be either moved or linked to a new collection, or left unchanged if you don't want them to be included for instancing.

Root

The Root parameter controls where news collections will be created. Options for currently Active Collection or Scene Root are available.

Strip

The Strip option eases naming cleanup for new collections. If your source objects have stray disambiguation numbering added to their names by Blender automatically like say .004 at the end of the name; with the Strip option active an attempt to remove the serialized numbering part from the new collection name will be made.

This works for numbers at the end of the current name, arbitrary numbers in the middle won't be considered.

Parents

When the Parents option is active, Blender will traverse the selected child objects for parents automatically, and will only create collections for top hierarchy objects, which have no more parents above them. This saves you from manually cherry picking them

Prefix and Suffix

An optional custom Prefixand Suffix can be manually typed in the boxes to be appended or prepended to new collection names.

Be sure to include a space character to distance them from the remaining name.


Set Collection Offset Usage

Set Collection Instance Offset allows defining the Collection Instance Offset parameter for several collection definitions at the same time, and conveniently from several origin options beyond the default 3D Cursor provided by Blender.

Collection instance offset is a coordinate in 3D space used to define the center of the collection when instanced as an asset, when duplicated using an empty through Add > Collection Instance. The center will be the point placed at the Empty object origin.

These are often neglected, displaced when moving objects or undefined (set at world [0,0,0] by default) for newly created collections.

When creating instances there is often one "main" or "parent"" object which is already placed at a position that naturally corresponds to a desirable center coordinate. This operator sets the collection offset directly from the selected object coordinates, avoiding the chore of manually placing the 3D Cursor for each individual collection which quickly grows unmanageable if you have dozens or even hundreds of them.

Usage

Most common use case is selecting a bunch of objects belonging to different collections and whose individual origins represent the desired collections centers, then go to Object > Collections > Set Offset.

An additional courtesy operator has been added to the collections context menu in the Properties Window > Object > Collectionsin the dropdown arrow, for convenience of access directly for a single object.

Parameters

For each axis you have four mutually exclusive options:

  • Leave - Leaves the desired axis coordinate unchanged from its current value, if it already has the desired coordinate.
  • Object - Copies coordinates from the selected objects. If multiple objects are selected the last created one is used.
  • Cursor - Same as builtin Blender behavior from the properties window.
  • Zero - Scene World coordinate system zero, when you want a certain component to remain at zero, like for example keeping the center (of a table top instance) on the ground (Z = 0) despite the object being at a height, or setting the center of a light fixture on the floor despite it being at a certain height.

Offset

Optional manual offset distance for each axis, cumulatively added to the above chosen option

You can pick a different option for each X,Y or Z axis independently, allowing flexibility in automating the centers for multiple collections. You should select only one object per intanceable collection, to avoid that the wrong is chosen to set the offset from.


Transfer Names Usage

Transfer Names is a 3D scene organization tool for people who want to keep their data neatly named, or keeping up with changing naming conventions, helping by transferring names between DataBlocks

It allows copying names between say object to ObjectData, from collections to objects, or collection instance to object.

To use it select a bunch of objects in the 3D viewport you wish to rename and go to the 3D View header menu under Object > Make Links > Transfer Name.

Parameters

Source

Source parameter dropdown lets you pick where names will be copied from. It can be:

  • Object - Name of the object
  • ObjectData - Name of the ObjectData associated with the object like a mesh, curve or camera
  • Text - The text content of a Font type object (3D text object)
  • Material - One of the objects materials
  • Collection - One of the collections the object is in
  • Collection Instance - For Empties only, the name of the instanced collection found under the Properties Window > Object > Instance > Instanced Collection.

Collection Index

When Source is set to Collection, an additional parameter will be shown called Collection Index. Since an object may be placed inside several collections simultaneously, when copying to/from collections it may be hard to predict which one names will be copied from. Since these are not saved in any particular order, the one picked may seem arbitrary to you. Cycling through the Index will allow you to specify which one to copy the name from. These are pre-sorted alphabetically for more predictable results.

Material Index

When Source is set to Material , an additional parameter will be shown called Material Index. Since objects can have multiple material slots wach with different materials, the index property allows a certain degree of control over which slot the material name will be copied from.

If set to zero, the name will be copied from the active material (the one that appears selected in the Properties Window when in Edit Mode).

Strip

The Strip option eases naming cleanup for datablocks. If your source has stray disambiguation numbering added to their names by Blender automatically like say .004 at the end of the name; with the Strip option active an attempt to remove the serialized numbering part from the new collection name will be made.

This works for numbers at the end of the current name, arbitrary numbers in the middle won't be considered.

Target

The Target parameter defines which targets will be receiving the names selected above. The name recipients are selected separately with the various checkboxes, to allow picking several independent destinations at the same time.

Collection Index

Likewise when picking collections to be named after the source, the optional parameter Index will be used. An object may be placed inside several collections simultaneously, when copying to/from collections Blender may pick the wrong one by default. Since these are not saved in any particular order the one picked may seem arbitrary to you. Cycling through the Index will allow you to specify which one to copy the name to. These are pre-sorted alphabetically for more predictable results.

Concatenation

Concatenation mode allows more complex naming conventions to be gradually built, by keeping existing target names in addition to the newly computed ones.

Default mode is Replace, which deletes existing names and completely replaces them with the transferred one. Prepend and Append respectively add the copied names to the beginning or to the end of the current one.

Prefix and Suffix

Optional custom prefixes and suffixes may be added to computed names in the fields.


Duplicate Collection Hierarchy Usage

Duplicate Collection Hierarchy operator allows you to duplicate a collection hierarchy without creating new objects or object data.

To use it right click over a collection with sub-collections in the outliner and choose the last option Duplicate Collection Hierarchy.

Existing collection duplication operators that ship with Blender by default either duplicate objects or both objects and their object data, along with the parent collections, adding additional geometry and objects to your scene.

This differs from Duplicate Collection because it doesn't create new objects.

See this original example structure

Scene Collection
  └ My Collections
    ├ Collection A
    │    ├Object A1
    │    └Object A2
    └ Collection B
         ├Object B1
         └Object B2

If you duplicate the collection My Collections with default Duplicate Collection you end up with

Scene Collection
  ├ My Collections
  │   ├ Collection A
  │   │   └Object A1
  │   │   └Object A2
  │   └ Collection B
  │       ├Object B1
  │       └Object B2
  │
  └My Collections.001
    ├ Collection A.001
    │    ├Object A1.001
    │    └Object A2.001
    └ Collection B.001
         └Object B1.001
         └Object B2.001

Notice the duplicated objects with .001 as name suffix.

If you the same with My Collections with default Duplicate Collection Hierarchy. you end up with

Scene Collection
  ├ My Collections
  │   ├ Collection A
  │   │   ├Object A1
  │   │   └Object A2
  │   └ Collection B
  │       ├Object B1
  │       └Object B2
  │
  └My Collections.001
    ├ Collection A
    │    ├Object A1
    │    └Object A2
    └ Collection B.001
         ├Object B1
         └Object B2

Notice how the object names have no number suffix, because they are the same object, linked to multiple collections.

This operator only duplicates the collection hierarchy, not its objects. That means for every sub collection of the right-clicked collection a new collection is created, and its objects are linked to the new one. No new objects are created, the existing ones are linked to the new collections while simultaneously being kept in any original ones.

When finished new collections were created, the existing objects will belong to both the original ones, and and the new ones simultaneously.

This can be useful for duplicating complex collection structures for using in other scenes, making derivative assets for instancing, or simply cloning a collection hierarchy.

This operator can be accessed from the collection context menu by right-clicking on any collection in the Outliner, other than a Scene Collection, which cannot be cloned.

Sales 50+
Customer Ratings 2
Average Rating
Dev Fund Contributor
Published almost 4 years ago
Blender Version 4.0, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0, 2.93, 2.92, 2.91, 2.9, 2.83, 2.82, 2.81
License GPL
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message