Assemblies are useful for creating combinations of geometry and light objects that act as lighting fixtures; you use them to represent the housing of a lamp and its light source or sources. You can use assemblies to represent lighting fixtures such as simple desk lamps, lighting strips, track systems, wall sconces with fluorescent or incandescent lights, chandelier systems, line voltage cable systems, and so on.

Object on the right is an assembly and is treated as a single entity.
When you create light assemblies, first you create your objects and build a hierarchy, then set joint parameters and assign inverse kinematics (IK). As a final step, you assemble the object hierarchy. The lights you use in the assembly have light-multiplier and filter color controls. You wire the Dimmer and Filter Color parameters of the Luminaire helper object to the parameters of the light sources that are members of the light assembly.

You can use IK to point a luminaire’s beam by simply moving the light’s target object.
Assemblies and Groups
Assembly functionality is a superset of grouping. Like grouping, creating an assembly lets you combine two or more objects and treat them as a single object. The assembled object is given a name, and then treated much like any other object.
The main difference with assemblies is that, when you assemble the member objects, you specify a head object: a Luminaire helper object. The head object acts as a front end for the assembly, and its parameters appear in the Modify panel when the assembly is selected. You can use these parameters to control the light sources in the assembly via parameter wiring. You can create other types of head objects with MAXScript.
Assembly names are similar to object names, except that they’re carried by the assembly. In lists like the one in the Selection Floater, assembly names appear in square brackets; for example: [Assembly01]. In the Scene Explorer and related dialogs, the square brackets enclose the assembly object icon instead.
General Features of Assemblies
Once you assemble objects, you can treat them as a single object in your scene. You can click any object in the assembly to select the entire assembly.
When you create an assembly, all of its member objects are rigidly linked to an invisible Luminaire helper object. The assembly uses the pivot point and the local transform coordinate system of this helper object.
You can nest assemblies. That is, assemblies can contain other assemblies (or groups), up to any level.
The head object parameters appear in the Modify panel when the assembly is selected. You can use the 3ds MaxWire Parameters functionality to connect these parameters to those of light objects in the assembly.

Luminaire types:
Left: Fixed
Middle: Orientable
Right: Multiple lights
Transforming and Modifying an Assembly
You can transform or modify an assembly as if it were a single object, and you can animate the transforms.
Unlike a group, when you apply a modifier to the assembly, only the luminaire receives the modifier. Thus, deforming modifiers such as Bend don't have any effect on assemblies.
When you apply a transform to the assembly, it applies to the assembly as a whole. More precisely, 3ds Max applies transforms to the dummy object that represents the assembly. To modify member objects, you must first open the assembly, select the objects, and then apply modifiers. Such modifiers do not appear in the modifier stack when the assembly is closed.
You can transform and animate individual objects within an assembly independently from the assembly itself. However, when you transform the assembly itself, the transform affects all assembled objects equally. The assembly transform is uniformly added to objects that have independent motions. An analogy is a cage of birds, each flying around on its own, while the cage itself is being moved. In the case of assemblies, the "cage" (the dummy object) expands to surround all objects in the assembly, wherever the objects’ independent transforms take them.
Accessing Objects in an Assembly
You can open and close assemblies to access the individual objects contained in them without dissolving the assembly. These commands maintain the integrity of the assembly.
- Open: Temporarily opens the assembly so that you can access its member objects. While an assembly is open, you can treat the objects (or nested assemblies/groups) as individuals. You can transform them, apply modifiers, and access their modifier stacks.
- Close: Restores the assembly when you’re finished working with the individual objects.
Using Make Unique with Assemblies
When you clone assemblies using instancing, and then make the clones unique, it's important to consider how this affects parameter wiring. Consider the following typical usage case:
- Drag an assembly, such as a light fixture, into the scene.
- Clone the assembly several times using the Instance option and position the instances in the scene.
- To make the scene look more realistic, giving the appearance of randomness to the objects in the scene, make some of the assembly instances unique and adjust their parameters to differ from the rest of the instances.
When you clone-instance an assembly, all objects in the assembly, along with all the parameter wires, are instanced. So if you change a wired luminaire parameter, all instanced assemblies are affected.
When the modifier stack displays an assembly head that is an instance or reference, the Make Unique button is active. By clicking it, the assembly head object is made unique with respect to its instances and all the assembly members are also made unique.
The parameter wiring between the unique assembly head and its members is de-coupled from the other instances of the assembly. Changing the parameters of the unique assembly head object affects only the parameters of its own members, not the members of the other instances of the assembly.
When multiple assembly instances are selected, the Make Unique command works the same as when multiple instances of an object are selected. You're asked whether you want to make the selected assemblies unique one with respect to each other.
- If you answer Yes, 3ds Max makes the assemblies unique one with respect to another and parameter wires are reconnected inside each unique assembly. That is, the parameters of each unique assembly head drives only the parameters of its own members, not that of the members in any other assembly instances.
- If you answer No, then the selected assemblies are made unique only with respect to the other assembly instances. The parameters of unique assembly heads drive only the parameters of their members, not the members of the other assembly instances.
Note: If you chose to instance the controllers when you instanced the assembly, the Modify panel
Make Unique command does not make the controllers unique. You can make them unique by doing the following: Open Track View, select the Transform track for object whose controller you want to make unique, and click the Make Unique button in the Track View toolbar.
Dissolving Assemblies
You can permanently dissolve assemblies by either disassembling or exploding them. Both commands dissolve assemblies, but to different levels.
- Disassemble: Goes one level deep in the assembly hierarchy. It separates the current assembly into its component objects (or assemblies/groups), and deletes the assembly head object.
- Explode: Similar to Disassemble, but dissolves all nested assemblies and groups as well, leaving independent objects.
When you disassemble or explode an assembly, any transform animation applied to the assembly is lost, and objects remain as they were in the frame at which the dissolution is performed. However, objects retain any individual animation.
To transform or modify the objects within an assembly, you must first remove them from the assembly, either temporarily or permanently. The Open command lets you do this.
Comparing Assemblies with Other Selection Methods
Compared to the other methods you can use to combine objects in 3ds Max, assembling is more permanent than making a transient selection, but less permanent than attaching objects.
- The current selection: The current selection of one or more objects is a temporary selection to which you can apply commands. As soon as you select a different object, the current selection is gone.
- Named selection sets: Let you reselect the same pattern of objects, but the positional relationship between those objects (their transforms) might be different each time you recall the named set.
- Assembled and grouped objects: Maintain their positional relationships unless you open the assembly and rearrange them. An assembly also keeps its identity as an individual object.
Each object in an assembly retains its modifier stack, including its base parameters. At any time, you can open the assembly to edit an object, and then close the assembly to restore the assembly identity.
- Attached objects (see Editable Mesh (Object)): Attached objects form a single object. The modifier stacks of the original objects are lost, including their base parameters. You can regain the form of the original objects by detaching them, but they become plain meshes.
Procedures
To insert and place an existing assembly:
- Turn on AutoGrid.
- Drag the assembly from a Web page (if it’s an i-drop object) or from your local disk and drop it into your scene, placing it on any existing surface.
- On the main toolbar, click (Use Pivot Point Center).
- Position the assembly as you would any other object to aim it in a specific direction.
- If necessary, wire the assembly luminaire to its light source or sources.
- Select the assembly, and then use the Modify panel settings to adjust the intensity of the light with the Dimmer control.
To create your own luminaire:
- Create the geometry of the lighting fixture.
- Create a light or on the Create panel, click Lights to add a standard or photometric light to the geometry of the lighting fixture you just made.
- Select all the objects in the assembly, including geometrical objects and lights.
Note: If using IK, leave the light targets out of the assembly so that you can manipulate them independently.
- Choose Assembly menu
Assemble.
A dialog appears requesting a name for the assembly and that you specify a head object. The only head object type available by default is Luminaire.
- Enter a name for the assembly and click OK.
- Wire the assembly luminaire to its light source or sources. More information on parameter wiring is available at the link in this step.
If more than one light source is present inside the assembly, create a chain of wired parameters. Then enter the desired relationship expression in the expression text box.
To adjust the pivot location of an assembly:
- When you adjust the pivot point of a closed group or assembly, the pivot point of all group and assembly members are affected, not only the pivot point of the group or assembly head object. Therefore, we recommend that you open the assembly, adjust the pivot of the head object, and then close the assembly.
To use an assembly with radiosity:
- Right-click the Luminaire, choose Properties, and on the Object Properties dialog choose the Radiosity tab. You can exclude and control radiosity parameters of the geometry and lights independently.
To adjust the properties of an assembly:
- After wiring the Dimmer and Filter Color parameters, select the Luminaire, and then go to Modify panel to display the luminaire parameters.
- Adjust the parameters.
The effect is visible in the viewport.