Skip to main content
12-Amethyst
May 13, 2022
Question

Default Assembly Feature Attributes

  • May 13, 2022
  • 5 replies
  • 6118 views

Is there a way to set up an assembly that will automatically create feature(component) attributes as I bring them into an assembly?

 

For example I want an attribute called "Reference_Model"  These models are used for reference only.  I can then use the attribute in a repeat region and can be easily filter out of BOM table or have their own BOM table.

5 replies

19-Tanzanite
May 14, 2022

I don't think so - but it would be a nice UI addition if component parameters could be added at the time of placement. 

 

You can maybe find a mapkey useful?  I have made one which adds a component parameter "FINDNUMBER" to the last placed component in an assembly.  I use FINDNUMBER to fix the index in repeat-regions and BOM balloons, etc...  Sounds like this mapkey could maybe be adapted to help your workflow.

 

Creo 4 mapkey code here:

mapkey _add_param_FINDNUMBER \
~ Activate `relation_dlg` `PBCreatePar`;\
~ Activate `relation_dlg` `PBProperties`;\
~ Select `parameter_properties` `Type_OptionMenu` 1 `string`;\
~ Update `parameter_properties` `Name_InputPanel` `FINDNUMBER`;\
~ FocusOut `parameter_properties` `Name_InputPanel`;\
~ Update `parameter_properties` `Value_InputPanel` `UNLABELLED`;\
~ FocusOut `parameter_properties` `Value_InputPanel`;\
~ Activate `parameter_properties` `DesignateChkBtn` 1;\
~ Update `parameter_properties` `Descr_InputPanel` `For BOM`;\
~ FocusOut `parameter_properties` `Descr_InputPanel`;\
~ Activate `parameter_properties` `Ok_StdButton`;

 

mapkey FF @MAPKEY_NAMEAdd FINDNUMBER parameter to last placed component;\
@MAPKEY_LABELAdd FINDNUMBER;\
~ Command `ProCmdMmParams` ;\
~ Select `relation_dlg` `OMContext` 1 `component`;\
~ Command `ProCmdQueryModeNopreh` ;\
~ Command `ProCmdMdlTreeSearch` ;\
~ Select `selspecdlg0` `RuleTab` 1 `Misc`;\
~ Select `selspecdlg0` `RuleTypes` 1 `Last Feat`;\
~ Activate `selspecdlg0` `EvaluateBtn`;\
~ Activate `selspecdlg0` `ApplyBtn`;\
~ Activate `selspecdlg0` `CancelButton`;\
%_add_param_FINDNUMBER;\
~ Activate `relation_dlg` `PB_OK`;

 

Usage: assemble a component, hit the green check-mark, then type "FF".

 

 

12-Amethyst
May 17, 2022

I thought about a mapkey, but didn't know exactly how to start the process.  I will take yours as a starting point and modify as needed.  However this is a band aide to my issue.  It would be nice to have these parameters built in to start parts.  I may have to request a new feature.

 

I will let you know if this helps once I have time to implement and test.

19-Tanzanite
May 17, 2022

Parameters can be built into start parts; that's Creo-101 basics...  

I suppose I assumed that you looked into having a parameter in your start parts called "PART_TYPE" with default value "STANDARD_MODEL".  And establishing a convention that if one assigned it the value "REFERENCE_MODEL", then such part would be filtered out of your BOM tables.

Patriot_1776
22-Sapphire II
May 19, 2022

You can add a "Component" parameter at, say, a top level assembly that is comprised of several sub-assemblies and several separate parts.  This "Component" Parameter will ONLY show up at that top assembly level for the components (not parts) you've added them to, and not in the sub-assemblies or parts you've added the parameter too.  Think of it as like an assembly "cut", that only intersects assemblies/parts at the level that the cut is created at, not the individual parts.  I thought this was interesting, and the difference between "Components" and "Parts" at the assembly level had always been murky for me, so, this experiment cleared that up for me, and I was able to clarify things via the test I just did.

 

So, I don't know of a way offhand to automatically add that "Component" parameter to any or all components in an assembly, but I tried adding the column to the Model Tree, a trick I've used in the past to add parameters quickly to multiple assemblies/parts, but the only option for showing parameters like that are showing "Model Params" (i.e. "Part" parameters), there IS no "Component Params" option(!!!), so you can't even do that.  Adding it to the Model Tree like that would have been the second best thing to what you want, but you can't even do that.  The caveat to that is that you need to be careful in that using the Model Tree like that it IS easy to add the correct parameter name...but the wrong parameter TYPE (i.e. "Integer" instead of "Real Number" or "String".  Then it's kinda a pain to delete it.  Or so I've been told...  LOL

 

Now, I think THAT is a worthwhile enhancement request to PTC, I'd sign that one.

 

For now, it looks like you'll have to add it manually.  Bummer.

 

If nothing else, thanks, it prompted me to learn a couple new things!

19-Tanzanite
May 20, 2022

To add component level parameters to the assembly model tree display, you have to manually type in their name under "Feature parameters"

pausob_0-1653007235439.png

It makes logical sense because a component placed in an assembly is an assembly "feature".

 

 

 

Patriot_1776
22-Sapphire II
May 20, 2022

Well, if you add it to your start models (assemblies, parts), you can then call it up as a column in your model tree, and easily and quickly enter the data you want there.  The caveat being that this data will carry along WITH the assemblies/parts into whatever OTHER upper-level assemblies they go into.  Not what you want.

 

BUT, I think there is a cure for that and would work the way you want.  When creating or modifying the start models, create the parameter but leave value blank (probably best), or "XXX" or something in the value for the start models themselves and at the start model level, make that parameter "Flexible", so that at EACH INDIVIDUAL upper assembly into which it's inserted Creo will prompt you if you want to use the flexibility or not, and if you do, at that point you can add the data you want, or you could leave it blank, and then you "should" be able to modify them all one after another.  Might be easiest to simply change the value every time you add an assembly or part to the upper-level assembly.

 

Try that and see if it works for you.

23-Emerald IV
May 20, 2022

The parameters are not needed at the part level, they are only needed at the component level.  Making each part flexible would add considerable overhead as well since each model would effectively have a hidden family table created behind the scenes.

 

Probably the better approach is to create a restricted value parameter definition file.  By predefining the parameter names and types (and any restrictions on the allowed values), creating them becomes much simpler.  Simply add the column for each component parameter to the model tree and then click wherever a new value is needed.  Since the type is already predefined, the value can be directly entered and no other selections are required.  See video below for an example of this.

 

(view in My Videos)

12-Amethyst
May 6, 2025

I have this same request to "initialize" default component parameters.  My workaround (can be put in a mapkey):

  1. Create your BOM Simplified Rep in Assembly that does not include the components you don't care about and activate it
  2. Activate Search Tool (ctrl-F)
  3. "Build Query" to "Look For" all Components in the assembly, toggle include submodels, Under Options, Toggle off "Suppressed" and "Excluded",  Under "Attributes, define Expression  in which Symbol Comparison "not exists". Save the Query so it can be retrieved later.  Note: query can be further filtered by "Type" if different initial values are desired for Assembly and Part Components, or by "Name", or by "Name" etc.
  4. "Find Now",  This should grab all components in the assembly.  Ctrl A to move all items "found" to "selected".
  5. All components should now be highlighted in model tree.  Right click and choose "Parameters".
  6. This will activate the Parameters dialogue box with all components in the upper selection field.  You may need to use Ctrl-A to select all components again in the lower section to make sure the next action will apply to all.
  7. Now add the Component Parameter, specifying "string" and your initial value.  "OK" out of all windows.
  8. Ensure that the new Parameter is in the model tree by adding "Feature Parameters" column.  Now the initial values can be easily modified in the Tree.
18-Opal
May 7, 2025

With Toolkit and the new feature notifiers you can easily implement this requirement.   But check as well the repeat relation functionality.