How Maya keeps track of edits to file references
 
 
 

When the contents of a referenced file are modified within the parent scene, the edits are recorded in a reference node that is created in the parent scene file when the referenced child (or grandchild) scene file is initially referenced. One reference node is created in the parent scene file for each child scene file it references. Each reference node stores any modifications that occur within the parent scene for its associated child scene file. The data in the original referenced child scene file remains unmodified. For example, a tree that is referenced and loaded into the parent scene can be scaled and repositioned in the parent scene without the original tree reference file being affected. It appears scaled and repositioned only in the parent scene because the translations and scale attributes are being stored in a reference node within the parent scene.

NoteEdits made to attributes within a parent scene have precedence over modifications made to the same attributes in the referenced child scene file lower in the hierarchy.

When a referenced file is unloaded, any edits that were made to the referenced contents in the parent scene file remain in the reference node that was created when the file was first referenced. You can think of a reference node as an attribute storage area that keeps track of modifications to the attributes, dependency graph connections, and DAG hierarchy changes that occur for any file referenced by the parent scene. It stores the edits that were applied to the referenced contents within the parent scene file, when the referenced file is unloaded. The reference node does not store edits that occur above it in the file referencing hierarchy.

When a referenced child file is loaded after previously being unloaded, the edits that were stored in the parent scene's reference node are applied to the appropriate nodes within the parent scene and the referenced data appears in the scene. This process occurs for each reference file in the parent scene each time a reference file is unloaded and loaded.

When a referenced child file is loaded after previously being unloaded, the order in which modifications are applied occurs from the bottom of the referencing hierarchy upwards. That is, any modifications that pre-existed at the various levels of the file referencing hierarchy are resolved by first going to the lowest level of the hierarchy, resolving any connections and modifications at that level, and then resolving modifications and connections at the next highest level of the hierarchy.

NoteWhen a referenced file is modified outside of the file reference scenario (that is, one user modifies the file directly while another accesses the same file through the parent file simultaneously), any modifications made to the referenced file do not appear in the parent scene until you re-load the referenced file.

Related topics