Modifying UDE Definitions

Modification of a UDE definition should be done with care, especially when instances of that UDE definition exist already; and, even more so when the definition is stored in a library shared with other users. This is because of a few primary risks:
Models with instances of the modified definition to behave differently because the modeling within the definition has changed
Models with instances of the modified definition will no longer import without error because if the definition now has a different set of parameters, inputs and outputs
Consumers of a library of definitions are unaware that somebody else has changed the definitions and published (by some means) the new library
That said, modification of a UDE definition can be a powerful and useful tool to quickly update large models with several instances of a given definition. There are basically three questions to consider when modifying a UDE definition:
1. What happens to instances of the modified definition within the current model?
2. What is the impact on import of existing .cmd scripts/models that have instances of the modified definition?
3. What is the impact on the replace-ability with other definitions?
The answer to each of these three questions depends on what exactly about the UDE definition is being modified. Each subsection below represents a different modification scenario. For each, they describe a common example or two, state how to make such a modification and answer the three questions from above.

Modify Current Topological Objects without Change to Inputs/Outputs

Examples:
Want to change a joint that's in the Definition from a translational to a cylindrical
Want to edit the function of a force or motion that's in the definition
How:
Right-click > Modify from the object under the UDE definition in the model browser
View > UDE Definition, then select the definition to modify, and Right-click > Modify from the object in the graphics window
Impact:
UDE instances in the current model based on the modified UDE definition will automatically update
Legacy .cmd scripts/models creating instances of this definition will reflect the modified state of the UDE definition only if the definition’s .cmd file was replaced, for example because it was overwritten in the same working directory or you manually replaced the file. See Files Associated with UDE’s for more details on how UDE’s are represented in Adams View command files.
No impact on replace-ability status with other UDE definitions

Subtract from Topological Objects without Change to Inputs/Outputs

Examples:
Want to delete a constraint in the definition that acts between two parts in the Definition
Want to delete a force in the definition that acts between two parts in the Definition
How:
Right-click > Delete from the object under the UDE definition in the model browser
Right-click > Modify from the UDE definition in the model browser, in the dialog’s Topological Objects tab remove the object(s) from the field and proceed through the dialog
Impact:
UDE instances in the current model based on the modified UDE definition will automatically update
Legacy .cmd scripts/models creating instances of this definition will reflect the modified state of the UDE definition only if the definition’s .cmd file was replaced, for example because it was overwritten in the same working directory or you manually replaced the file. See Files Associated with UDE’s for more details on how UDE’s are represented in Adams View command files.
No impact on replace-ability status with other UDE definitions

Add to Topological Objects without Change to Inputs/Outputs

Examples:
Want to add a constraint in the definition that acts between two parts in the Definition
Want to add a force in the definition that acts between two parts in the Definition
How:
View > UDE Definition, then select the definition to modify, then in the graphics window interactively create the new object(s) connecting them to pre-existing objects in the UDE Definition, then launch the UDE Modify dialog (from ribbon or Model Browser) and adds the newly created object(s) on the Topological Objects tab and proceed through the dialog
Tools > Command Navigator to launch the dialog for the modeling action, complete that dialog only browsing for the specific objects needed and ensuring that the new object is created in same locale (library or model) as the UDE definition itself
Impact:
UDE instances in the current model based on the modified UDE definition will automatically update
Legacy .cmd scripts/models creating instances of this definition will reflect the modified state of the UDE definition only if the definition’s .cmd file was replaced, for example because it was overwritten in the same working directory or you manually replaced the file. See Files Associated with UDE’s for more details on how UDE’s are represented in Adams View command files.
No impact on replace-ability status with other UDE definitions

Modify Current Topological Objects Changing Inputs or Required Outputs

Examples:
Modify a force/motion in the definition such that its function has a dependency on a spline or other object outside the Definition
Modify a part in the definition such that its location/orientation has a dependency on a marker outside the definition
Expand the definition to cover more of the main model, and some objects that require inputs or need to be outputs become part of the definition
Contract the definition to cover less of the main model, and some objects that required inputs or were outputs are no longer in the definition
How:
Right-click > Delete from the object under the UDE definition in the model browser
Right-click > Modify from the UDE definition in the model browser, in the dialog’s Topological Objects tab remove the object(s) from the field and proceed through the dialog
View > UDE Definition, then select the definition to modify, then in the graphics window interactively create the new object(s) connecting them to pre-existing objects in the UDE Definition, then launch the UDE Modify dialog (from ribbon or Model Browser) and adds the newly created object(s) on the Topological Objects tab and proceed through the dialog
Tools > Command Navigator to launch the dialog for the modeling action, complete that dialog only browsing for the specific objects needed and ensuring that the new object is created in same locale (library or model) as the UDE definition itself
Impact:
UDE instances in the current model based on this definition cannot auto-update and so you are prompted to choose to either cancel the modification action or disassemble all existing instances into their constituent objects
Legacy .cmd scripts/models creating instances of this definition will generate errors upon import in Adams View sessions using this modified UDE definition
Other UDE definitions that were formerly replaceable types of this one, are not so anymore (nor would this one be a replaceable type of anything it formerly was).

Add or Subtract Optional Outputs

Examples:
Decide that a marker belonging to a part in the Definition should no longer be an output
How:
Launch the UDE Definition Modify dialog (from ribbon or Model Browser), go to the Parameters tab, select a row containing an optional output, click the Delete Row button and click OK
Impact:
UDE instances in the current model based on this definition cannot auto-update and so you are prompted to choose to either cancel the modification action or disassemble all existing instances into their constituent objects
Legacy .cmd scripts/models creating instances of this definition will generate errors upon import in Adams View sessions using this modified UDE definition
Other UDE definitions that were formerly replaceable types of this one, are not so anymore (nor would this one be a replaceable type of anything it formerly was).

Remove Parameters or Switch Parameters to Objects

Examples:
No longer want to expose a damping design variable on UDE instance creation dialogs for this definition
Want to cut the parametric tie between a design variable and some property of an object within the UDE definition's topological object set
How:
Launch the UDE Definition Modify dialog (from ribbon or Model Browser), go to the Parameters tab, switch the radio button state for a row from "Parameter" to "Object"
Launch the UDE Definition Modify dialog (from ribbon or Model Browser), go to the Parameters tab, right-click a parameter and select "Remove Parameter"
Impact:
UDE instances in the current model based on the modified UDE definition will automatically update
Legacy .cmd scripts/models creating instances of this definition generate errors upon import in AView sessions using this modified UDE definition because they will be attempting to set parameters that no longer exist
No impact on replace-ability status with other UDE definitions

Addition of parameters as objects

Examples:
Decide to parameterize the damping term in the function defining a force/motion object in the UDE Definition, but don't want to expose it through the UDE Instance dialogs
How:
Modify the object within the UDE definition such that it refers to a design variable (one existing anywhere); at this point existing instances are updated, but you must launch and proceed through the UDE definition modify dialog so that the design variable gets re-parented into the UDE definition. On the Parameters tab switch the radio button state for the new row from "Parameter" to "Object".
Impact:
UDE instances in the current model based on the modified UDE definition will automatically update
Legacy .cmd scripts/models creating instances of this definition will reflect the modified state of the UDE definition only if the definition’s .cmd file was replaced, for example because it was overwritten in the same working directory or you manually replaced the file. See Files Associated with UDE’s for more details on how UDE’s are represented in Adams View command files.
No impact on replace-ability status with other UDE definitions

Addition of Parameters as Parameters

Examples:
Decide to parameterize the damping term in the function defining a force/motion object in the UDE Definition, and want to expose it through the UDE Instance dialogs
How:
Modify the object within the UDE definition such that it refers to a design variable (one existing anywhere); at this point existing instances are updated, but you must launch and proceed through the UDE definition modify dialog so that the design variable gets re-parented into the UDE definition. On the Parameters tab ensure the radio button state for the new row is set to "Parameter".
Impact:
UDE instances in the current model based on the modified UDE definition will automatically update
Legacy .cmd scripts/models creating UDE instances of this definition will generate warnings upon import in Adams View sessions using this modified UDE definition, but the script can proceed by just taking the value for the new parameter from the value used in the UDE definition itself
No impact on replace-ability status with other UDE definitions