In this tutorial, we will see how to use Blender's Copy Rotation Constraint to rotate multiple objects, each around its own Origin, all at once, in particular by copying the rotation of a single reference object.
Video Transcript
Hello everyone!
In this tutorial, we will see how to use Blender's Copy Rotation Constraint to rotate multiple objects, each around its own Origin, all at once, in particular by copying the rotation of a single reference object.
This tutorial was created using version 3.3 of Blender, but the Copy Rotation Constraint has been available for several versions and will presumably be available in future releases too.
This is a basic tutorial, aimed at those who are still new to Blender; we will cover topics such as separating an object into multiple objects, the Origin of geometries, and of course, the Copy Rotation Constraint.
To show you a practical example, I will use a 3D model I created representing Venetian blinds. Since one of the best ways to learn something is to try it first-hand, you can download this 3D model, for free, from the link in the description of the video.
Alright, let's get started! First, let's open the window-blind.blend file and take a look at its content: it contains a single object that includes both the structure and the individual slats of the blind.

What we want to do is separate the individual slats so that we can rotate them individually, each around its own horizontal axis, which in this case coincides with the global X-axis.
Therefore, we shouldn't just separate the slats from the rest of the structure, but we also need to separate them individually, to obtain many distinct objects, each with its own correctly set Origin.
Subsequently, we will look into linking the rotation of each slat to the rotation of a single slat, which will serve as a reference for all the others.
First, let's separate all the slats from the rest of the structure. To do this, we need to switch to Edit Mode, select only the slats, press the P key and choose Selection from the Separate menu that will appear on screen.

There are several ways to select only the slats and I'll show you a few here, so you can choose the one you prefer and, if you're not familiar with them, you'll learn this too, which could be useful in other circumstances!
One method is to quickly select a few vertices of all the slats, for example with the Box Select tool, whose shortcut is the B key, and then expand the selection with the Select More tool, whose shortcut is CTRL and Numpad Plus, until all the slats are selected.

A second method is to switch to Vertices selection mode and press L while the mouse is over a vertex of each slat: the L key is indeed the shortcut for the Linked operator, which selects all vertices connected to the one under the mouse cursor when this key is pressed.

Since in this particular object there are many slats and, conversely, few other objects, you could also proceed with an inverse selection, and here's the third method: we select the other elements of the structure with L, then invert the selection with CTRL I.

Anyway, once the slats are selected, we press P and choose Selection from the Separate menu.

Now the slats constitute a separate new object, which has its Origin located at the same point as the Origin from which it derives.
Before we set the Origin again, however, we need to make each slat a separate object.
In this case too, we will use the Separate operator, but this time the selection will be simple: it's sufficient to switch to Edit Mode, select all the geometries with the A key, press P and choose, this time, the By Loose Parts operator.

Each slat is now an individual object, but all the slats have their Origin located where the Origin of the object from which they derive was, so now we have to correctly set the Origin of each slat.
With this type of object we are lucky, as the Origin can be simply set to the center of the geometry of each slat.
To select all the slats, the quickest method is probably to select the original structure and invert the selection with the key combination CTRL I.

At this point, we can right-click on the selection and choose the option Set Origin to Geometry.

Trying to rotate each slat around the global X-axis, the slat will rotate correctly.
Let's now choose a slat that will serve as a reference for all the others, for example, the highest one, and rename it TARGET.

Now let's choose the slat closest to TARGET and open the Constraints tab in the Properties window, then add a Constraint of the Copy Rotation type to this object.

In the Target field of the Constraint, we select the slat we just renamed TARGET.
The Constraint provides us with other options, but for our purposes, there's no need to explore them.

To quickly provide this Constraint set in this way to all the other slats, we need to first select all the other slats, then lastly select the slat with the Constraint, then open the Blender Search Box and write Copy Constraints.
The operator Copy Constraints to Selected Objects will appear in the Search Box: let's select it and verify that all the slats now have the Copy Rotation Constraint correctly set.

The most interesting test, however, is to select the TARGET slat and rotate it around its X-axis, so you see all the other slats automatically rotate as well!

NOTE - In my case, I opened the Blender Search Box by pressing the spacebar. This shortcut can be set in the Keymap section of the Preferences window.

So, to recap: in this brief tutorial, we have seen how to separate many objects from a single object, set their Origins, and have them copy the rotations of a reference object using the Copy Rotation Constraint. Don't forget to download the 3D model so you can directly try out what you've just seen!
I hope this tutorial has been helpful! See you soon!