Collection Utilities

by Duarte Ramos in Addons


Collection Utilities Instalation

Installation procedure:

  1. To install download the file named Addon_DPFR_CollectionUtilites_#_##.zip and save it to a convenient location.
  2. Do not extract the archive. Under Blender got to the Edit menu and open Preferences > Extensions.
  3. On top right of the header, press the dropdown button with a small down arrow and choose the option Install from Disk... .
  4. Browse to the location where you saved the downloaded file in step 1 (like say the Downloads folder of the operating system), and double-click the .zip  file 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 it is not archive.

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