03-20-2020
01:24 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
03-20-2020
01:24 AM
Seems there is a problem that when the derived assembly is suppressed the ReferenceFeature.ReferenceComponent returns Nothing here. I updated the iLogic code to workaround it, you can try if it works well there:
Sub Main()
oFace = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "")
Dim PrFtrNm As String=""
Dim oNBND As NativeBrowserNodeDefinition=ThisDoc.Document.BrowserPanes.GetNativeBrowserNodeDefinition(oFace.SurfaceBody.CreatedByFeature)
If oNBND.NativeObject.Type=ObjectTypeEnum.kReferenceFeatureObject Then
If oNBND.NativeObject.ReferenceComponent Is Nothing Then
Dim oRefComp As ReferenceComponent
Dim oRefFeature As ReferenceFeature
Dim oDoc As PartDocument
oDoc = ThisDoc.Document
For Each oRefComp In oDoc.ComponentDefinition.ReferenceComponents.DerivedAssemblyComponents
PrFtrNm = getLabel(oNBND.NativeObject,oRefComp)
If PrFtrNm <> "" Then
GoTo findLabel
End If
Next
' For Each oRefComp In oDoc.ComponentDefinition.ReferenceComponents.DerivedPartComponents
' PrFtrNm = getLabel(oNBND.NativeObject,oRefComp)
' If PrFtrNm <> "" Then
' GoTo findLabel
' End If
' Next
Else
PrFtrNm = oNBND.NativeObject.ReferenceComponent.ReferencedDocumentDescriptor.DisplayName ' "With" exception failure if link to derived (reference) component is suppressed or broken.
End If
findLabel :
Else
PrFtrNm=oNBND.Label
End If
MsgBox(PrFtrNm, , "PrFtrNm")
End Sub
Function getLabel(oParentRefFeature As ReferenceFeature,oRefComp As ReferenceComponent) As String
For Each oRefFeature In oRefComp.ReferenceFeatures
If oParentRefFeature Is oRefFeature Then
getLabel = oRefComp.ReferencedDocumentDescriptor.DisplayName
Exit For
End If
Next
End Function
If this solves the problem please click ACCEPT SOLUTION so other people can find it easily.

Rocky Zhang
Inventor API PD
Manufacturing Solutions
Autodesk, Inc.