Hi @J_Dumont
Check if the document has interest "{AC211AE0-A7A5-4589-916D-81C529DA6D17}"
That means it's created by frame generator. Simple ilogic example:
Dim oDoc As Document = ThisDoc.Document
If oDoc.DocumentInterests.HasInterest("{AC211AE0-A7A5-4589-916D-81C529DA6D17}") = True
MsgBox("Created by Frame Generator")
Else
MsgBox("Not created by Frame Generator")
End If
Here is an example I'm using to traverse all frame generator parts in an assembly and change their base unit to each.
Sub Main()
Dim oRun As DialogResult = MessageBox.Show("Vill du kontrollera basenhet för alla FG-komponenter?" & vbCrLf & "Detta måste göras före incheckning i vault!" _
, "Basenhet Frame Generator", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If oRun = DialogResult.Yes
Dim asmDoc As AssemblyDocument = ThisDoc.Document
BU2Each(asmDoc)
End If
End Sub
Sub BU2Each(ByVal asm As AssemblyDocument)
Dim oOcc As ComponentOccurrence
For Each oOcc In asm.ComponentDefinition.Occurrences
Try
If Component.IsActive(oOcc.Name) Then
If oOcc.DefinitionDocumentType = DocumentTypeEnum.kPartDocumentObject Then
If oOcc.ReferencedDocumentDescriptor.ReferencedDocument.DocumentInterests.HasInterest("{AC211AE0-A7A5-4589-916D-81C529DA6D17}") = True _
And oOcc.Name <> "Frame Reference Model" Then
oOcc.Definition.BOMQuantity.SetBaseQuantity(BOMQuantityTypeEnum.kEachBOMQuantity)
End If
ElseIf oOcc.DefinitionDocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
BU2Each(oOcc.ReferencedDocumentDescriptor.ReferencedDocument)
End If
End If
Catch
End Try
Next
End Sub
Hope it helps 🙂