Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
Rob67ert
856 Views, 3 Replies

Test is file is iPart or iAssembly

Hi,

To test is a file is an iPart I use:

SyntaxEditor Code Snippet

Dim partDoc As PartDocument = ThisApplication.ActiveDocument
If partDoc.ComponentDefinition.IsiPartFactory Or partDoc.ComponentDefinition.IsiPartMember Then
    MessageBox.Show("This IS an iPart", "Title")
    Return 'do nothing
Else
MessageBox.Show("This is NOT an iPart", "Title")
End If

But what do I need to check if it is an iPart or an iAssembly?

 

I like to run some iLogic on my files, but not on the iPart or iAssembly files.

Robert

If you find this reply helpful ? It would be nice if you use the Accept as Solution or Kudos button below.
TONELLAL
in reply to: Rob67ert

Hi,
Try this :

Dim
partDoc As Document = ThisApplication.ActiveDocument

If oDoc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
'...Assembly document

If oDoc.DocumentType = DocumentTypeEnum.kPartDocumentObject Then
'...part document
 

 

Alain 

Rob67ert
in reply to: TONELLAL

This wil not work.
It will also see the iPart factory part as a part and the iAssembly factory as a assembly.

Robert

If you find this reply helpful ? It would be nice if you use the Accept as Solution or Kudos button below.
Rob67ert
in reply to: Rob67ert

Found it:

SyntaxEditor Code Snippet

'Part file
If oDoc.DocumentType = Inventor.DocumentTypeEnum.kPartDocumentObject And oDoc.SubType <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
    If oDoc.ComponentDefinition.IsiPartFactory Or oDoc.ComponentDefinition.IsiPartMember Then
        MessageBox.Show("This is a iPart", "iPart")
        Return
    End If
    MessageBox.Show("This ia a Part", "Part")

'Assembly file
Else If oDoc.DocumentType = Inventor.DocumentTypeEnum.kAssemblyDocumentObject Then
    If oDoc.ComponentDefinition.IsiAssemblyFactory Or oDoc.ComponentDefinition.IsiAssemblyMember Then
        MessageBox.Show("Dit is een iAssembly", "Title")
        Return
    End If
    MessageBox.Show("Dit is een Assembly", "Title")
End If
Robert

If you find this reply helpful ? It would be nice if you use the Accept as Solution or Kudos button below.