Inputs
Input values include data derived from the current VPE and the current part. Input values also sometimes include certain outputs of other CSL modules. When the cost engine evaluates a module, it puts into scope each input identifier, that is, it establishes values for the module’s input identifiers.
Note that you can view input identifiers and their values by setting a breakpoint in the CSL debugger. Click the Inputs/Formula Results tab when the debugger stops at a breakpoint. See Using the CSL Debugger in Working with Cost Model Logic for information on setting a breakpoint.
Note also that you can test whether an identifier is in scope with the predefined function safeEval--see Miscellaneous Functions. Other uses of an identifier that is not in scope cause an exception.
The input identifiers listed below are associated with every type of CSL module, unless otherwise specified.
Accessibility
The value of this identifier is an enumeration object with the following fields:
OBSCURED
SIDE_A
SIDE_B
THROUGH
UNDERCUT
UNKNOWN
allOps
The value of this identifier is a collection that has one element for each already-costed operation of the current routing. Each element is an object that has one field for each already-evaluated output formula of a module associated with the operation, as well as one field for each attribute of the operation’s associated GCD.
You can view a list of these formulas and attributes as follows:
Formula names:
o In CMWB, select the operation or process and click the CSL Modules tab.
o See Outputs for information on standard, implicit output formulas for each CSL module type.
GCD attributes: in aPriori, select a GCD in the Geometric Cost Drivers pane. The gcd object field names are the same as the names displayed in the Name column of the Geometric Cost Drivers pane, modified to remove spaces and to make the initial character lower case.
Each element of allOps also has the following fields:
childOps: collection with an element for each already-costed child operation of the child operation. This allows recursive access to descendants of the current process or operation.
displayName: name of the operation as translated into the local language.
ignoreFeasibility: true if the current routing node was explicitly specified by the user to be included in the current routing regardless of feasibility; false otherwise.
isManualOverride: true if the current routing node was explicitly selected by the user to be included in the current routing; the value is false otherwise.
allOps is in scope for all types of CSL modules, except the following:
Operation precedence
Operation type precedence
Compatibility
Idle station count
BarShape
The value of this identifier is an enumeration object with the following fields:
ROUND_BAR
SQUARE_BAR
RECTANGULAR_BAR
ROUND_TUBE
SQUARE_TUBE
RECTANGULAR_TUBE
CHANNEL_BAR
ANGLE_BAR
HEX_BAR
I_BEAM
UNKNOWN
childOps
The value of this identifier is a collection that has one element for each already-costed child operation of the current process or operation. Each element is an object that has one field for each output formula of a module associated with the operation, as well as one field for each attribute of the operation’s associated GCD.
You can view a list of these formulas and attributes as follows:
Formula names:
o In CMWB, select the operation or process and click the CSL Modules tab.
o See Outputs for information on standard, implicit output formulas for each CSL module type.
GCD attributes: in aPriori, select a GCD in the Geometric Cost Drivers pane. The gcd object field names are the same as the names displayed in the Name column of the Geometric Cost Drivers pane, modified to remove spaces and to make the initial character lower case.
Each element of childOps also has the following fields:
childOps: collection with an element for each already-costed child operation of the child operation. This allows recursive access to descendants of the current process or operation.
displayName: name of the operation as translated into the local language.
ignoreFeasibility: true if the current routing node was explicitly specified by the user to be included in the current routing regardless of feasibility; false otherwise.
isManualOverride: true if the current routing node was explicitly selected by the user to be included in the current routing; the value is false otherwise.
name: name of the operation as specified in the associated template.
childOps is in scope for all types of CSL modules, except the following:
Operation precedence
Operation type precedence
Compatibility
Idle station count
childResults
The value of this identifier is a collection with one element for each child process node of the current node. Each child node’s associated object has one field for each already-evaluated output formula of the child node. Other fields include the following:
name
simpleName
ComplexHoleSubType
The value of this identifier is an enumeration object with the following fields:
RECTANGULAR_ROUNDED
OBROUND
RECTANGULAR
UNKNOWN
constants
The value of this identifier is an object that has one field for each CSL predefined constant for the current process group. To view a complete list of predefined constants, click Globally Available CSL/Lookup Tables under Global Cost Model Information in the navigation pane of the CMWB, select the Modules tab, and click the constants folder.
defaultMachine
The value of this identifier is an object that represent the default machine for the current process. It has one field for each attribute of the default machine. You can view machine attributes for a given process in the Edit Machine Selection dialog (right click a process name in aPriori’s Manufacturing Process pane, and select Machine Selection). Note that this is in scope only if there is a current process; is not in scope for template pruning or material stock selection.
Direction
The value of this identifier is an enumeration object with the following fields:
UP
DOWN
BOTH
EITHER
UNKNOWN
EdgeShape
The value of this identifier is an enumeration object with the following fields:
CHAMFER
ROUND
SHARP
UNKNOWN
FormType
The value of this identifier is an enumeration object with the following fields:
TAB
BRIDGE
EMBOSS
STAMP
GUSSET
CURVED_BEND
SIDE_ACTION
EXPANSION
REDUCTION
UNKNOWN
gcd
This is an object that has one field for each attribute of the current GCD. The field names and values are the same as the attribute names and values. You can view a list of these attributes as follows: in aPriori, select a GCD in the Geometric Cost Drivers pane. The gcd object field names are the same as the names displayed in the Name column of the Geometric Cost Drivers pane, modified to remove spaces and to make the initial character lower case. Note that for the name, attribute-name, of any GCD attribute, the value of gcd.<attribute-name> is the same as the value of op.<attribute-name>.
global
The value of this identifier is an object that is used to pass information among different CSL modules. You can add a field to global by using a formula (within a set block) whose left hand side is a complex identifier consisting of “global” followed by dot followed a new field name. See Set Blocks for information on set blocks.
Use this identifier to pass information from one process or operation to a sibling process or operation in the current routing or operation sequence, during process or operation taxonomy evaluation. It is set to null after each taxonomy evaluation pass (including after the yield pass).
HoleType
The value of this identifier is an enumeration object with the following fields:
BLIND
THROUGH
OBSCURED
UNKNOWN
InclusionStatus
The value of this identifier is an enumeration object with the following fields:
AUTO_INCLUDE
USER_INCLUDE
One of these is the value of the inclusionStatus property of any active node in the current process routing or operation sequence. The value indicates whether the node has been manually or automatically included in the routing or sequence. If the node is not active in the routing (for example, if it is optional and infeasible), the value of the inclusionStatus property is null.
KeywayBottomType
The value of this identifier is an enumeration object with the following fields:
FLAT
ARC
BATHTUB
UNKNOWN
KeywayEndType
The value of this identifier is an enumeration object with the following fields:
THROUGH
OPEN
CLOSED
UNKNOWN
material
The value of this identifier is an object that has one field for each attribute of the current material. You can view material attributes for the current process group in the Material Composition table of the Material Selection dialog (click the Material button in aPriori’s Manufacturing Process pane) .
machine
The value of this identifier is an object that has one field for each attribute of the current machine. You can view machine attributes for a given process in the Edit Machine Selection dialog (right click a process name in aPriori’s Manufacturing Process pane, and select Machine Selection). Note that this is in scope only if a machine has been selected for the current process.
machines
The value of this identifier is a collection that has one element for each machine available for the current process. You can view available machines for a given process in the Edit Machine Selection dialog (right click a process name in aPriori’s Manufacturing Process pane, and select Machine Selection). Note that this is in scope only for machine selection modules.
Lookup table identifiers
There is one identifier for each lookup table associated with current process group, and , if the current node is a process node, each lookup table associated with the current node and all its ancestors up to and including the current process. Each identifier is the short name (not pathname) of a table. The value of each identifier is a table accessible through the use of a query expression. all the lookup tables associated with the process group, the current node and all its parents in the process-tree hierarchy.  (So, if the current node is an operation, the parent process's lookup tables won't be available, but parent nodes in the operation sequence will be.)
op
This is an object that has one field for each already-evaluated output formula of a module associated with the current routing node, as well as one field for each attribute of the current GCD. The field names and values are the same as the formula and attribute names and values.
You can view a list of these formulas and attributes as follows:
Formula names:
o In CMWB, select the operation or process corresponding to the current routing node and click the CSL Modules tab.
o See Outputs for information on standard, implicit output formulas for each CSL module type.
GCD attributes: in aPriori, select a GCD in the Geometric Cost Drivers pane. The gcd object field names are the same as the names displayed in the Name column of the Geometric Cost Drivers pane, modified to remove spaces and to make the initial character lower case.
Other fields of op include the following:
childOps: collection with an element for each already-costed child operation of the child operation. This allows recursive access to descendants of the current process or operation.
displayName: name of the operation as translated into the local language.
ignoreFeasibility: true if the current routing node was explicitly specified by the user to be included in the current routing regardless of feasibility; false otherwise.
isManualOverride: true if the current routing node was explicitly selected by the user to be included in the current routing; the value is false otherwise.
inclusionStatus: indicates whether the current node is user-included or auto-included in the current process routing or operation sequence. See InclusionStatus for possible values of this field.
part
The value of this identifier is an object with one field for each attribute of the current part, including GCDs and production information.
This identifier is commonly used to access the current part's geometric properties, as in, for example, part.height and part.volume. A collection of the current part's GCDs is designated by part.childArtificats.
A property path of the following form allows access to the count of given GCD-type for the current part:
part.componentProcessGroup.gcdSummary.gcdStatistics.data.<GCD-type>.count
So, for example, the following expression can be used to retrieve the count of SimpleHoles for the current part:
safeEval(part.componentProcessGroup.gcdSummary.gcdStatistics.data.SimpleHole.count, 0)
The structure of the property path can be seen in the Inputs/Formula Results tab of the Cost Model Workbench Debugger:
The part object also has a field, customAttribute, which designates an object that has a field for each user-defined attribute (UDA). So the form for accessing UDAs in CSL is
part.customAttributes.<UDA-name>
where UDA-name is the name that appears in the Name column of the System Admin UDA table.
PartingType
The value of this identifier is an enumeration object with the following fields:
FLAT
NON-FLAT
UNKNOWN
passNumber
The value of this identifier is the current pass number, 1, 2, 3, or 4, if the current node is an operation node or operation sequence branch node. See Cost Engine Details for more information on pass numbers.
perCosting
The value of this identifier is an object that is used to pass information among different CSL modules. You can add a field to perCosting by using a formula (within a set block) whose left hand side is a complex identifier consisting of “perCosting” followed by dot followed a new field name. See Set Blocks for information on set blocks.
This identifier is set to null after every complete costing. Use this object for expensive computations that won't vary by routing. Caution: in some cases, the GCD hierarchy itself can vary by routing (for example, when aPriori creates RingedHoles for turning routings).
perRouting
The value of this identifier is an object that is used to pass information among different CSL modules. You can add a field to perRouting by using a formula (within a set block) whose left hand side is a complex identifier consisting of “perRouting” followed by dot followed a new field name. See Set Blocks for information on set blocks.
This identifier is set to null after each routing evaluation. Note that there are potentially multiple evaluations of each routing—one for each stock.
plant
This is an object that has one field for each plant variable of the current VPE and process group. The field name is the same as the name of the corresponding variable; the field value is the value of the corresponding variable. You can view a list of these variables (and their values) as follows:
Global plant variables: In VPE Manager, open the current VPE and select the top-level node in the navigation pane. The plant object field names are the same as the names displayed in the VPE Manager, modified to remove spaces and to make the initial character lower case.
Process-group-specific plant variables: In CMWB, select Global Cost Model Information > Cost Model Variables.
RelationType
The value of this identifier is an enumeration object with the following fields:
LIES_NEAR
LIES_OUTSIDE
INTERSECTS
PARALLEL
ENDS_ON
COAXIAL
ADJACENT
LIES_ON
IS_ABOUT
IS_ORTHOGONAL
IS_ACCESSIBLE_FROM
results
This is a collection with one object for each number-valued output identifier associated with the current process or operation or any of its child processes or operations. If there are multiple children that define an output with the same name, the corresponding field of results is the sum of the output values. All currency values are converted to the current VPE’s currency. results is in scope for taxonomy modules only.
setup
The value of this identifier is an object with one field for each process setup option associated with the current process. The field names are the option names. You can view the process setup options for a given process as follows:
o Double click the process under Processes, GCDs & Operations in the CMWB navigation pane.
o Click the Process Setup Options tab.
SetupDirectionType
The value of this identifier is an enumeration object with the following fields:
NORMAL
PARALLEL
OBLIQUE
PARALLEL_OBSTRUCTED
NORMAL_OBSTRUCTED
OBLIQUE_OBSTRUCTED
UNKNOWN
SetupType
The value of this identifier is an enumeration object with the following fields:
PRIMARY
SECONDARY
PRIMARY_ROTATIONAL
SECONDARY_ROTATIONAL
OTHER
site
The value of this identifier is an object that has one field for each site variable of the current process group. The field names and values are the same as the variable names and values. You can view a list of these attributes (and their values) by selecting Process Group Site Variables from the aPriori VPE Toolset.
stock
The value of this identifier is an object with one field for each attribute of the current material stock. Note: this is only in scope for modules associated with primary processes and operations; it is not available for secondary processes and operations. Note that this is in scope only if the stock selection module has been evaluated for the current part.
tool
The value of this identifier is an object that represents the tool chosen for the current node. Note that this is in scope only for modules associated with an operation, and is non-null only if a tool has been selected for the current operation.
tools
The value of this identifier is a collection with one element for each tool available for the current operation. Note that this is in scope only for tool selection modules.
toolShop
The value of this identifier is an object with one field for each variable of the toolshop that is associated directly with either the current node, one of the current node’s parent nodes, or one of the current node’s descendant nodes (if exactly one descendant node has a tool shop).
TurningApproach
The value of this identifier is an enumeration object with the following fields:
OD
FACE_A
FACE_B
EITHER_FACE
ID
SLANTED
NONE
VoidShape
The value of this identifier is an enumeration object with the following fields:
EXTRUDED
COMPLEX
UNKNOWN