Assembly Viewport

The Assembly viewport provides functionality for selection, locking, and 'pick walking' up and down a hierarchy with the keyboard arrow keys. These options are essential to streamlined animation workflows. The Utility section in the viewport is related to items once saved as an assembly preset and defines how the item reacts to being placed from the Preset Browser into a given scene.



Select - controls whether or not items are selectable within any 3D viewport. Selecting Yes enables direct item selection, while No disables it. Items designated No can still be selected in the Items (Scenes) List.

Lock - when lock is enabled by selecting Yes, items are locked from the application for any type of item transform. The item's Shape, Link, Visible, Pivot, Center, and Size channels also become locked.

Redirect - when an item is selected in a 3D viewport, specifying an item for redirect triggers Modo to automatically select the alternate item instead. Helpful in easing item selections in complex hierarchies, locators with special Display Viewport properties can be used to visualize selectable items in the viewport that redirect to the actual item you wish to modify.

Pick Walk - the arrow keypad can be used as a way to "walk" through selections in a hierarchy. By default, parent items are selected by pressing the up arrow, and child items are selected by pressing the down arrow. The Pick Walk function allows you to specify which items are selected by any of the four arrow keys. For instance, when you reach the bottom of a hierarchy, the foot, you could specify the opposing foot item by pressing the left or right arrows, and by pressing down you could select the head item and so on.


Command - the Command option specifies a command to perform when the item is clicked in the 3D view. This can be any of Modo's commands. There are two commands that are especially useful when setting up assemblies:

item.channelHaul- this selects any user channels on the item and activates the Channel Haul tool.

item.channelPopover- this displays a pop-over form containing controls for any user channels on the item. If used in conjunction with a selection direction, this can also be used to display the channels belonging to a specific group.

Tip:  The Command function is disabled on Mesh Items. To enable the option, you can convert a mesh to a static mesh, by right-clicking on the item's layer name in the Item List, and selecting the Change Type > Static Mesh option from the context menu. Note that converting a mesh to a static mesh is a destructive action, so make sure you have a backup copy, should further editing be necessary to the Mesh Item.

Tooltip - tooltips are the small blocks of text that appear, if assigned, when the pointer momentarily stays over an item. These can be notes or reminders to what an item is intended to do in a scene but tooltips can also be useful for an assembly author to provide some contextual instructions on how to work with an item in an assembly.

URL - if a custom URL is assigned to an item, using the F1 help feature then clicking the item in the 3D viewport opens that particular location. This is useful if you want to add custom documentation to an item.

User Tag - this is a text string that can be used to identify particular items within an assembly or scene. These tags can be read by scripts with the item.userTag command. An example of use might be to identify items to be deleted or hidden when an assembly script has finished.

Drop Action

Assemblies offer you the ability to create a rig using Modo's many animation modifiers, then saving the setup as a Preset for easy application elsewhere. In the following descriptions, the item being dragged is referred to as the source item and the item that has received the drop is referred to as the destination item.

Assembly - you can choose from a series of actions that are performed when the preset is initially dropped into the scene from the Preset Browser. The possible actions are as follows:

Parent - the source item is made a child of the destination item.

Parent in Place - the source item is parented, as above, but with Compensation applied.

Match - the source item is modified to match position, scale, and rotation of the destination.

Match Position - the source item is modified to match the position only of the destination item.

Match Rotation - the dropped item is modified to match the rotation only of the destination item.

Match Scale - the dropped item is modified to match the scale only of the destination item.

Insert - inserts the source item into the hierarchy of the destination item. The item is positioned and orientated to match the destination item and becomes the parent of the destination item.

Insert at Parent - similar to Insert but the source item matches its position and orientation to the destination item's parent (if a parent item is present).

Insert in Place - the source item is inserted into the destination item's hierarchy as its parent but retains its current position and orientation.

Place - positions the selected item at the intersection of the mouse pointer and the surface.

Place and Align - positions the selected item at the intersection of the mouse pointer and surface, rotating the item to match the surfaces normal direction.

Source - the Source drop action is performed when the assembly item is dropped onto a scene item. It has the same action options as Assembly.

Destination - as above, but the action is performed when a scene item is dropped onto the assembly item. It has the same action options as Assembly.

Drop Script

Additional to the above actions, scripts can be assigned to run when certain actions occur:

Source - the assigned script (omitting the @) runs when this item is dropped onto another in the scene. The script gets the source item and destination item passed as arguments. If multiple items are dropped, then the script is called for each item in turn.

Destination - as above, but the script runs when any item in the scene is dropped onto the item it's assigned to. As with the Source drop script, the source and destination items are passed to the script as arguments.