<!DOCTYPE html
  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!--
Copyright (c) 2006 UGS Corp.

All Rights Reserved.

This software and related documentation are proprietary to UGS Corp.
-->
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Assembly Modular Update Method</title>
      <script language="javaScript">
        abridged="false";
        displayConditions=new Array();
      </script>
      <link type="text/css" href="../css/main_styles.css" rel="stylesheet">
   </head>
   <body class="bodydocs" onload="top.pageLoader()" bgcolor="#FFFFFF">
      <div class="title_topic4" id="xps10_pagetitle">Assembly Modular Update Method</div>
      <hr noshade="true">
      <p class="para_topic">The Modular Update Method is a very powerful technique for organizing spreadsheet data for components in an assembly. By designing with spreadsheets that use Modular Update, the task of creating variations of components from generic parts can be greatly simplified.</p>
      <p class="para_topic">The steps for updating an assembly when using the Modular Update Method follows this basic approach:</p>
      <ol type="1" start="1">
         <li>
            <p class="para_item">From the initial (root) parts spreadsheet, select Options&rarr;Update Methods and toggle ON the Modular Assembly Update toggle.</p>
         </li>
         <li>
            <p class="para_item">Update the initial (root) parts with the initial spreadsheet (Tools&rarr;Update NX Part).</p>
         </li>
         <li>
            <p class="para_item">Change the work parts to a sub component.</p>
         </li>
         <li>
            <p class="para_item">Load the spreadsheet for that part.</p>
         </li>
         <li>
            <p class="para_item">Use Tools&rarr;Refresh Expr, Tools&rarr;Refresh Attr, or Tools&rarr;Recalculate on the newly loaded spreadsheet to make sure it is up to date.</p>
         </li>
         <li>
            <p class="para_item">Update the work part with the current spreadsheet (define the necessary active ranges and use Tools&rarr;Update NX Part).</p>
         </li>
         <li>
            <p class="para_item">Repeat from step 3 until all parts have been updated.</p>
         </li>
         <li>
            <p class="para_item">Change the work parts back to the initial part and reload the initial spreadsheet.</p>
         </li>
      </ol>
      <p class="para_topic">Modular Update is especially useful when creating variations on a theme with assemblies. Note that this update method is also designed to work with the Assembly Range feature.</p>
      <p class="para_topic">The best case for doing a modular type of update in an assembly is related to the variations on a theme concept in the spreadsheet.</p>
      <p class="para_topic">Consider the case where you have several parts in a generic product that all have minor (or even major) variations controlled by some product identifier at the top of the assembly. The goal would be to use the spreadsheet to capture those variations so that when you change the product identifier in the main spreadsheet and then do an update, all of the component parts change to match with the specified product.</p>
      <p class="para_topic">With the Options&rarr;Update Method&rarr;Work Part Update Only method you would manually need to visit each part and do a Tools&rarr;Update NX Part. Or be very creative in using interpart expressions and &quot;if&quot; statements in order to get the top level of the assembly to properly update all of the other components. This can be a very time-consuming method.</p>
      <p class="para_topic">With the option where the entire assembly is updated (Options&rarr;Update Method&rarr;Root Part Cascade Update), you would have to be very careful about the naming of parameters, and then capture all of the variations in a single spreadsheet. As the number of combinations or components in the assembly grows, this type of spreadsheet could grow to be very large and difficult, if not impossible, to maintain.</p>
      <p class="para_topic">With the Modular Update method, each component of the assembly is updated with its own spreadsheet, and the task becomes manageable. Each spreadsheet for each component is constructed to handle the possible variations internally. The update is then started from the top of the assembly, and each component is individually loaded and then updates itself. Each component is self-contained, sort of the object-oriented approach to variations on a theme. The net result is that complexity is more easily managed, and the task of updating a large assembly from a single starting point becomes a simple process.</p>
      <div class="title_division">Toggle ON Modular Update</div>
      <p class="para_division">You can activate the Modular Update method by opening the Options&rarr;Update Methods dialog and toggle ON the Modular Assembly Update button.</p>
      <div class="title_division">Functional Considerations</div>
      <p class="para_division">To realize the potential for the Modular Update method, the spreadsheets at the component level that handle variations on a theme need to be created in a slightly different manner than that used normally. The component spreadsheets need to use a lookup table in order to select the parameters for expressions in the spreadsheet. This method is described in Another Way to Do Variations on a Theme.</p>
      <p class="para_division">A final point for consideration is how to communicate the selected variation between parts and therefore spreadsheets in an assembly. For this task, the spreadsheet uses a component table defined in an assembly range. By using a component table you can set the order of update for the components, and also pass data between spreadsheets so that the update process is driven to create a specific variation of the assembly.</p>
      <p class="para_division">For an example of how this process works see  <a class="links" href="javascript:void(0)" onclick="top.openFile('shared_func/tls_spd_mod_ass_ov_r.html');return(false);">Modular Assemblies</a>. 
      </p>
   </body>
</html>