×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

How to identify parts that are having different properties applied in different Contexts?

How to identify parts that are having different properties applied in different Contexts?

How to identify parts that are having different properties applied in different Contexts?

(OP)
In an Assembly BOM, how could I distinguish the items which are having different values in different Contexts?

At assembly level it’s possible to apply values in Context to Component, Instance, Reference Set and Part. The problem is, the values entered at part level are over ridden by Assembly level Context=”Component” (by default), which gives undesired results in the BOM. How could I clearly see the driving context of each cell item of the BOM?

Ex: “Size” attribute entered at the part level is overridden by Assembly Property applied in context to “Component” (By Default). There could be some few parts with this unwanted behaviour (especially in a cloned design) and what is the best way to catch those culprits?

Michael Fernando (CSWE)
www.solidCADworks.com
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks


RE: How to identify parts that are having different properties applied in different Contexts?

I know of no definitive method for checking to see if the values of the Attributes as seen at the Component level, which is what controls what appears in the Assembly Parts List, have been overridden (somewhere between the Part and the Component level) or not using a built-in function. The best that one can do would be while in the context of the Assembly, select the component(s) of interest, press MB3, select Properties -> Attributes and then from the 'Export' section of the dialog, select the 'Export Attributes to Information Window'. Without closing the listing window, repeats this for all four levels; Component, Instance, Reference Set and Part. Once you have a complete listing you could visually check the 'history' of the value of the Attribute(s) of interest as you moved from Part thru Component. Now I guess it could be possible to write some NX Open application which would automate this process of comparing the values at the four levels and flagging any apparent changes between these levels.

John R. Baker, P.E.
Product 'Evangelist'
Product Engineering Software
Siemens PLM Software Inc.
Digital Factory
Cypress, CA
Siemens PLM:
UG/NX Museum:

To an Engineer, the glass is twice as big as it needs to be.

RE: How to identify parts that are having different properties applied in different Contexts?

When you look at the attributes of a component (or part, instance, etc), look at the "inherited" column. The inherited column may be empty or show one of two icons: a tag (indicating the attribute has been inherited and overridden) or a tag with a small green arrow/triangle in the upper left corner (indicating that the attribute value is being inherited from somewhere else).

Quote (MFDO)

The problem is, the values entered at part level are over ridden by Assembly level Context=”Component” (by default)
Some attributes get inherited by default (components inherit the part attributes and values by default) but I know of no attributes that get overridden by default. To override an attribute, you must supply a new value to an inherited attribute. To remove the "override" value, select the attribute and press the delete button*; the overridden value will disappear and it will return to the "inherited" status and value.

* the graphical "delete" button in the dialog, not the delete button on the keyboard.

www.nxjournaling.com

RE: How to identify parts that are having different properties applied in different Contexts?

Yes, cowski is correct; I had forgotten about the 'Inherited' column in the Attribute 'navigator'. Note that you can also use the 'Inherited' column to determine at what level was an attribute originally ADDED. If there is NO notation whatsoever in the 'Inherited' column than that indicates that this particular attribute was actually created new at this level.

John R. Baker, P.E.
Product 'Evangelist'
Product Engineering Software
Siemens PLM Software Inc.
Digital Factory
Cypress, CA
Siemens PLM:
UG/NX Museum:

To an Engineer, the glass is twice as big as it needs to be.

RE: How to identify parts that are having different properties applied in different Contexts?

(OP)
Cowski, I mean that some components’ attributes were entered at assembly level with the setting Context=>Apply to= Components (Default) unintentionally. If the default was changed to “Part” every time then would have got the desired value in the BOM.

The question is how to find those components with undesired values. John, I don’t think the method you suggest is a practical. (I’m not a fortune teller to identify the Components with problematic attributes by looking at the BOM :) )

Could we change the default = “Part”?

Michael Fernando (CSWE)
www.solidCADworks.com
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks


RE: How to identify parts that are having different properties applied in different Contexts?

(OP)
default = “Part” is not the solution but will reduce future mistakes.

Michael Fernando (CSWE)
www.solidCADworks.com
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks


RE: How to identify parts that are having different properties applied in different Contexts?

Here's a rough journal that may help.

CODE

Option Strict Off

Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.Assemblies

Module Module1

    Public theSession As Session = Session.GetSession()
    Public ufs As UFSession = UFSession.GetUFSession()
    Public lw As ListingWindow = theSession.ListingWindow

    Sub Main()
        Dim workPart As Part = theSession.Parts.Work
        Dim dispPart As Part = theSession.Parts.Display

        lw.Open()

        lw.WriteLine("component attributes overriding the part attribute value:")
        lw.WriteLine("")

        Try
            Dim c As ComponentAssembly = dispPart.ComponentAssembly
            If Not IsNothing(c.RootComponent) Then
                reportComponentChildren(c.RootComponent, 0)
            Else
                '*** insert code to process piece part
                lw.WriteLine("Part has no components")
            End If
        Catch e As Exception
            theSession.ListingWindow.WriteLine("Failed: " & e.ToString)
        End Try

        lw.WriteLine("component processing complete")

        lw.Close()

    End Sub

    Sub reportComponentChildren(ByVal comp As Component, _
        ByVal indent As Integer)

        For Each child As Component In comp.GetChildren()
            '*** insert code to process component or subassembly
            lw.WriteLine(New String(" ", indent * 2) & child.DisplayName())

            Dim userAttInfo() As NXObject.AttributeInformation = child.GetUserAttributes
            For Each temp As NXObject.AttributeInformation In userAttInfo
                If IsAttributeOverridden(child, temp) Then
                    lw.WriteLine(New String(" ", indent * 2) & "attribute title: " & temp.Title)

                End If
            Next
            lw.WriteLine("")
            reportComponentChildren(child, indent + 1)
        Next
    End Sub

    Function IsAttributeOverridden(ByVal theComp As Component, ByVal theAttribute As NXObject.AttributeInformation) As Boolean

        'if "inherited" = false, the attribute may be original to the component or it is overridden
        'if the component's parent (part) has the same attribute, it must be overridden
        'otherwise it must be new to the component

        Dim thePart As Part = theComp.Prototype.OwningPart
        Dim isOverridden As Boolean = False

        If Not theAttribute.Inherited Then
            If theAttribute.Array Then
                isOverridden = thePart.HasUserAttribute(theAttribute.Title, theAttribute.Type, theAttribute.ArrayElementIndex)
            Else
                isOverridden = thePart.HasUserAttribute(theAttribute.Title, theAttribute.Type, -1)
            End If

        End If

        Return isOverridden

    End Function

    Public Function GetUnloadOption(ByVal dummy As String) As Integer
        Return Session.LibraryUnloadOption.Immediately
    End Function

End Module 

www.nxjournaling.com

RE: How to identify parts that are having different properties applied in different Contexts?

(OP)
Thanks Cowski for your efforts.

May be I should consider an ER for this issue.

Michael Fernando (CSWE)
www.solidCADworks.com
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks


RE: How to identify parts that are having different properties applied in different Contexts?

(OP)

Quote (GTAC)


Your recent call to the Global Technical Access Center, Incident Report (IR)
Number 7352185 opened on 07-APR-2015, has been researched by our GTAC
software engineers. They have determined that this issue should be
reviewed for possible enhancement to the current software functionality.


This IR was converted into an enhancement request (ER) on 08-APR-2015
and is now referenced as ER Number 7352185. It is OPEN for review at this time.

Michael Fernando (CSWE)
www.solidCADworks.com
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks


Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources