This topic provides useful information, tips, best practices, and methods for working with the Container feature.
Container Definitions
A container definition is a MAXC file that stores the content of the container. You can use a definition file in either of two ways:
- Local Definition Stores the changes you make to the content.
- Source Definition References content into a container in your scene.
When you save a container in your scene, you save a Local Definition. If others reference your content, then their Source Definition is the same as your Local Definition. If they make changes to your content, they save those changes to a unique Local Definition of their own. The exception is Edit in Place, which saves changes back to the Source Definition, overwriting it.
You can open a definition file to troubleshoot its contents the same way you would a regular MAX scene file: Simply rename the container file's MAXC extension to MAX.
Locked Definitions
When the same local definition is shared by multiple containers, you can access only one of the containers at a time. When the status is Locked, this means that this container's definition is being accessed elsewhere. This can occur when:
- The container allows editing in place, but someone is currently editing it.
- The container has been copied and one of the copies is open.
- The same 3ds Max scene file is open elsewhere, and the same container is open.
As long as a local definition exists, when the container is open or edited, a temporary file is created to identify the status to others who try to access it. This file is deleted when you exit Edit In Place mode or close the container. However, if you exit or reset 3ds Max while editing in place, this lock file might remain, causing the container to be inaccessible subsequently. To restore accessibility, open the folder in which the container file resides and delete the file with the same name as the container file, appended with .lock . For example, if the container file is named dining_room.maxc, the lock file would be named dining_room.maxc.lock.
To avoid conflicts, make it a practice to close a container when you are ready for it to be accessible locally by another user.
Tips and Best Practices
-
Dependencies Because containers can be inherited by others, who can add them to their own scenes, be sure to package all relevant dependencies for the content in the container. If you do not, the relationships with objects outside of the container will be severed upon Update, Close, or Unload.
For example, if a sphere’s motion influences deformation of a cylinder with the Linked XForm modifier, you might place the cylinder and any related objects inside one container, and then place that container and the sphere inside a second container.
- System Units If you plan to share a container with others, make sure you are all using the same system units.
-
Instanced and Cloned Containers You cannot instance containers. You can
clone containers, and the cloned containers will be closed because the original container has
locked the definition. To inherit changes made to whichever copy is currently open, turn on
Auto Update When Closed
If you clone a saved or closed container, you cannot undo the action.
-
Transforming a Container A container is the parent of its contents, so, by default, any transforms you apply to the container affect all objects inside it.
To transform a container without affecting its contents, select an open container and, on the Hierarchy panel
Adjust Transform rollout, turn on Dont Affect Children. This setting applies only when the Hierarchy panel is active.
-
Hierarchy You can create parent/child relationships among objects inside a container, but all content is a descendant of the container. The following rules apply to working with object hierarchies within containers:
- Removing Objects When you remove an object from a container, its children are also removed and it is no longer linked to its original parent.
- Unlinking Content Unlinking an object from its parent in the container removes it and its children. Similarly, if you link content to a parent outside the container, the object and its children are removed.
Unlinking content from the container also removes it.
- Linking to Content If you link an object to a parent that is in a container, you are prompted to add it. If you click No, the relationship to the parent will be severed upon Update, Close, or Unload.
Similarly, if you link an object outside a container as parent of an object inside a container, the latter is removed from the container without prompting. However, if you link an object outside a container as a child of an object inside a container, you’re prompted to add the former to the container.
- XRefs You cannot add XRef objects or objects with XRef materials or controllers in a container. Instead, you can inherit a container that contains objects that you might otherwise use as XRefs, and add that to another container.
-
Rigs in Containers Before placing an animated rig in a container, make sure no objects in the rig are hidden or frozen and that the container is centered at the origin (X=0, Y=0, Z=0). When adding rigs to a container, be sure to include all dependencies as well.
Note: Biped and CAT systems are always local when inherited. This means they update only in closed containers, and do not support unlocking specific attributes.
-
External Paths Inheriting a container works much like
merging assets into the scene. For instance, if the content uses a bitmap, the map will not be found if the path has changed, or the new path is not defined in
External Files.
In such cases, you can use the Missing Map Files dialog that opens to locate the files.
Procedures
To create a container:
- On the
Create panel, click
(Helpers).
- On the Object Type rollout, click Container.
- Click and drag in a viewport to create the container helper object.
- Right-click to end the object creation.
When first created, the container is open, and thus is editable.
To create a container from selected objects:
- From the Tools menu, choose Containers
Create Container From Selection.
- Open the
Container Explorer, the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. On the toolbar, click
(Create Container From Selection).
After selecting objects to place in a container, do one of the following:
A container is added to the scene with the selected objects placed inside.
To add objects to a container:
- In a viewport, select an open container to add objects to, then on the Modify panel
Local Content rollout, click Add. Use the Add Container Node dialog that opens to highlight the objects to add, and click Add.
- In a viewport, select the objects you want to add to the container, then from the Tools menu, choose Containers
Local Content
Add Selected To Container. Use the Select Container To Add To dialog that opens to select an open container to add the objects to.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. Select the objects to add, then on the toolbar click
(Add Selected To Container). Use the Select Container To Add To dialog to highlight the container, and click Add.
Do one of the following:
The added objects remain visible in the viewports, but when the container is closed they are removed from the scene and referenced from the container’s MAXC file.
To remove objects from a container:
- Select an open container from which to remove objects. (You cannot select objects in closed containers.) On the Modify panel
Local Content rollout, click Remove. Highlight objects to remove in the Remove Container Node dialog list and then click Remove.
- Select the objects to remove, then from the Tools menu, choose Containers
Local Content
Remove Selected From Container.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. Highlight the objects to remove, then on the toolbar click
(Remove Selected From Container).
Do one of the following:
The objects are removed from the container and added to the scene.
To identify which container an object belongs to:
- Select the object in a scene whose container you want to identify.
- From the Tools menu, choose Containers
Select Contents Container.
The object’s container is selected in the scene.
To close and save a container:
- Do one of the following:
- Select the container to close and then on the Modify panel
Manage Container rollout, click Close.
- Select the container to close and then from the Tools menu, choose Containers
Close Container.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. Highlight the container to close, then on the toolbar click
(Close Container).
- Select the container to close and then on the Modify panel
- If this is the first time you are closing the container, you’re prompted to save it first. Use the Container Definition File dialog to specify the location and file name, then click Save.
The Container helper changes from an open to closed state. After you close the container, it can be edited by someone else.
Objects in closed containers are removed from the scene but remain visible. They are now referenced by the scene from the saved container’s file. Closing containers can be an effective way to improve scene performance.
To save a container:
- Select the container to save, then on the Modify panel
Local Content rollout, click Save or Save As.
- Select the container to save, then choose Tools menu
Containers
Local Content
Save Container.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. Select the container to save, then on the toolbar click
(Save Container).
Do one of the following:
If this is the first time you are saving the container, a file dialog prompts you for the name and location of the MAXC file to save.
To reload a container:
- In a viewport, select an open container to reload, then on the Modify panel
Local Content rollout, click Reload.
- In a viewport, select an open container to reload, then on the Tools menu, choose Containers
Local Content
Reload Container.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. Select an open container to reload, then on the toolbar click
(Reload).
-
This refreshes the open container to its most recently saved version. You can use this feature to abandon changes to your container without saving them, or to refresh copies of containers.
Do one of the following:
To update a container:
- In a viewport, select the container to update, then on the Modify panel
Local Content rollout, click Update.
- In a viewport, select the container to update, then from the Tools menu, choose Containers
Update.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. Select the container to update, then on the toolbar click
(Update).
Only containers with inherited content can be updated. To update an inherited container, do one of the following:
This updates the container to its most recently saved version.
To inherit a container:
- Do one of the following:
- From the Tools menu, choose Containers
Inherit Container.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. On the toolbar, click
(Inherit Container).
- From the Tools menu, choose Containers
- On the Inherit Container dialog, navigate to the MAXC file of the container to inherit in your scene.
- Click Open.
If the author of the container has provided edit permission and you click Edit In Place, you can edit its contents.
This procedure shows how to bring a container into a scene as a new entity. Alternatively, you can inherit a container into an existing container; see the following procedure.
To inherit the contents of a saved container into an existing container:
- In a viewport, select the container to receive the inherited contents, then on the Modify panel
Manage Container rollout, click Inherit Content.
- Use the Inherit Content dialog to navigate to the MAXC file of the container whose objects and display properties you want to inherit.
- Click Open.
Any contents in the current container are deleted and replaced with the contents of the container you chose to inherit.
If the author of the container has provided permission and you click Edit In Place, you can edit its contents.
To edit an inherited container:
- Select the container to edit, then on the Modify panel
Manage Container rollout, click Edit In Place. Make your changes, then click Edit In Place again to save your work and close the container.
- Select the container to edit, then from the Tools menu, choose Containers
Edit Container. Make your changes, then choose Edit Container again to save your work and close the container.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. Highlight the container to edit, then on the toolbar click
(Edit Container). Make your changes, then click
(Edit Container) again to save your work and close the container.
Anyone who subsequently references the container will inherit the changes.
You can edit an inherited container only if the author has provided edit permission.
If edit permission has been granted, do one of the following:
To allow edits to a container:
- Select an open container.
- On the Modify panel
Rules rollout, choose Only Edit In Place, Only Add New Objects, or Anything Unlocked (and set attributes to lock), then save the container. For explanations of these options, see Rules rollout.
- Close the container.
The container file can now be edited by someone else. Anyone who subsequently references the container will inherit the changes.
To change inherited content to local content:
- Select the closed container in your scene whose referenced contents you want to make unique, then on the Modify panel
Manage Container rollout, click Make All Content Unique.
- In a viewport, select the closed container in your scene whose referenced contents you want to make unique, then from the Tools menu, choose Containers
Make All Content Unique.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. Select the closed container in your scene whose referenced contents you want to make unique, then on the toolbar click
(Make All Content Unique).
Inherited content is referenced into the scene from the container file, so that changing that content also changes the file. You can de-reference the content, thus making it unique, by following this procedure.
Do one of the following:
The container status changes from Closed to Open and all its contents are loaded into the scene. The contents are no longer referenced from the MAXC file; any changes you now make to the container contents are done locally.
To merge a container into your scene:
- On the Modify panel
Inherited Content rollout, click Merge Source Definition.
- On the Tools menu, choose Containers
Inherited Content
Merge Container Source.
- Open the
Container Explorer, or the
Scene Explorer with Customize
Toolbars
Container on, or the standalone Containers toolbar. On the toolbar, click
(Merge Container Source).
Select a closed container that is inheriting contents from an externally referenced source container and do one of the following:
The container is loaded with the most recent version of the source container and changes from closed to open. The container is now local and any changes you make to the container no longer affect the source.
To override content display settings:
- On the Modify panel
Display rollout, click Override Obj Properties.
- From the Tools menu, choose Containers
Override Object Properties.
- Open a
Container Explorer,
Scene Explorer, or
Container Toolbar and on the toolbar click
(Override Object Properties).
The individual display properties of all objects in the selected container, including display color, show/hide, and renderability, are overridden and replaced by the display properties set for the container.
Select the container whose object display properties you want to override and do one of the following:
To delete a container:
- In a viewport or Explorer, select the container to delete.
- Press
Delete or choose Edit menu
Delete.
When you delete a container, its content is deleted as well.