Submitted by peter.t on Tue, 05/26/2015 - 00:33
Forums:
Hello,
is there a way to sync the properties (in my case an attribute) of a subassembly to a root assembly?
My displayed part is a huge assembly and my journal allows me to set a subassembly as workpart in order
to set callout-numbers for each component of the subassembly. After doing so, I will have to push the button
to sync these new attributes to the root assembly. This should be done within the journal.
Here's a screenshot of the button (Attribute)
http://www.directupload.net/file/d/3999/5teea97r_png.htm
re: synch callouts
Why not let NX manage the callout numbers for you?
re: synch callouts
We would have to create a drawing of each subassembly before creating a bill of materials for the whole assembly which is not desired. It's also not easy to set the callout numbers in the right order while creating a part-list within a drawing. Besides, wouldn't you still have to sync the attributes to the root assembly after creating a subassembly drawing?
re: callouts
Are you using Teamcenter?
re: callouts
No, we're using NX 7.5 native
re: callouts
You can create your own part attribute for the callout number and use it instead of the system generated callout number. This will assure that the same callout number is used for the part in all assemblies. The downside is that you will have to manage the numbers, making sure that each part has a unique number. If two parts reference the same number, you may get errors.
re: callouts
I already created an own part attribute for the callout numbers which works absolutely fine. You won't get any errors when you set the attributes for callout numbers from an assembly into the component and not in the displayed part itself. Of course you can not have the same number within an assembly.
These from an assembly set attributes however need to be synchronized to the top assembly by that button shown in the screenshot I sent some Posts ago. If you don't push that button, my custom attribute won't be shown in the top assembly but only in the subassembly where I set it.
To have a better understanding what I am actually doing: I wrote a Journal that shows the components of an assembly in a list. It is possible to move these components to the right place by using drag&drop. After dragging all the components of an assembly into the right order (f.e. for mounting), these custom callout numbers (just like shown in the list) will be set into the components. This tool also allows you to process subassemblys when you set them as work part. But this is where it needs to be synchronized and it would be really nice if the Journal would do this, too.
I hope this is understandable. My english isn't so well. If you need any screenshots in order to help please let me know.
re: callouts
My point in my previous post was that if you assign the callout attribute to the part file as a part attribute (as opposed to assigning it to the component as a component attribute), it will be inherited as a component attribute in every assembly where the part is added as a component. You wouldn't need to synch the attributes because they will automatically be the same in every assembly. If these are custom parts that will only be used for this one project, this approach may work well for you. However, if one or more of the parts are common to multiple projects, you may run into problems if/when the callout number needs to be changed in other projects.
Your current approach, assigning the callout to the component in the current assembly, is a good solution as it will only affect the current assembly. There is a "SynchronizeAttributes" method, but, unfortunately for you, it is not available in NX 7.5 (it was added in NX 8). To synch the callout attributes in NX 7.5, you will need to take care of it yourself by assigning the callout number in each individual assembly where the part is used as a component. So if a given part is used as a component in both assembly1 and assembly2, you will need to assign the callout attribute to the component in both assembly1 and assembly2. If you have a top-level assembly for your project, you can recursively work through the assembly levels, assigning the component attributes as needed.