Inventor Customization

Reply
Active Contributor
michmaju
Posts: 29
Registered: ‎09-01-2011
Message 1 of 3 (168 Views)

Extract model REV from drawing that only references an ipn using VBA

168 Views, 2 Replies
12-07-2012 09:56 AM

I'm trying to extract the Rev of a model (part or assembly) from a drawing.  Since Inventor has independent revs for the model and idw I am trying to drill down and put the rev from the model referenced.  I got it to work for ipts and many iams using:

 

Dim oModelDoc As Document
Set oModelDoc = oDocument.Sheets(1).DrawingViews(1).ReferencedDocumentDescriptor.ReferencedDocument

 

The problem I have is when the drawing only references an ipn presentation file.  The ipn ALSO has it's own independant rev!  I'm trying access the model the ipn references but cannot get it to work.

 

BTW, I do know about the ability to sync idw and ipt properties.  I have enable it for our template but we have a lot of legacy drawings that don't have this option selected.  I also haven't tested that method with an drawing that only references an ipn.

 

Code is below with offending section in bold:

 

' Find model (part or assembly) referenced by drawing if active document is a drawing
If oDocument.DocumentType = kDrawingDocumentObject Then
Dim oModelDoc As Document
Set oModelDoc = oDocument.Sheets(1).DrawingViews(1).ReferencedDocumentDescriptor.ReferencedDocument
If oModelDoc.DocumentType = kPresentationDocumentObject Then
Dim oModelDoc2 As Document
Set oModelDoc2 = oModelDoc.AllReferencedDocuments.Item(1) 'oModelDoc..ReferencedDocumentDescriptors.Item(1).ReferencedDocument

' debug: test if the correct document type was found
If oModelDoc2.DocumentType = kAssemblyDocumentObject Then
MsgBox ("yeah, it's an iam")
End If

' debug: check to see if the correct file has been found by looking at filename
Set oFMetadata = ThisApplication.TransientObjects.CreateFileMetadata(oModelDoc2.FullFileName)
PN = oFMetadata.FileName


'Dim test As PresentationDocument
'test.AllReferencedDocuments.Item (1)
'test.ReferencedDocuments.Item(1).ReferencedDocumentDescriptors.Item(1).ReferencedDocument

Set oDocument = oModelDoc2
Else
Set oDocument = oModelDoc
End If
End If
' END TEST

' Get the PropertySets collection object
Dim oPropertySets As PropertySets
Set oPropertySets = oDocument.PropertySets

' Get Rev if it exists else oRev = ""
Dim oRev As Variant
oRev = oPropertySets.Item("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}").ItemByPropId(kRevisionSummaryInformation).Value

Matthew
INV 2013
Active Contributor
michmaju
Posts: 29
Registered: ‎09-01-2011
Message 2 of 3 (143 Views)

Re: Extract model REV from drawing that only references an ipn using VBA

12-11-2012 01:04 PM in reply to: michmaju

Any VBA experts have any ideas?

Matthew
INV 2013
ADN Support Specialist
xiaodong.liang
Posts: 1,263
Registered: ‎06-12-2011
Message 3 of 3 (117 Views)

Re: Extract model REV from drawing that only references an ipn using VBA

01-08-2013 06:25 PM in reply to: michmaju

Hi,

 

I may not get what you meant:  ....the ipn ALSO has it's own independant rev!  I'm trying access the model the ipn references but cannot get it to work.

 

I created an assembly and used it in a drawing. And I created a presentation document with this assembly. Finally ran your code snippet. this line works well to me.

 

Set oModelDoc2 = oModelDoc.AllReferencedDocuments.Item(1)

 

Could you clarify the problem you are having? or any screenshots, or specific documents?



Xiaodong Liang
Developer Technical Services
Autodesk Developer Network

You are not logged in.

Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.

Need installation help?

Start with some of our most frequented solutions to get help installing your software.

Ask the Community


Inventor Exchange Apps

Created by the community for the community, Autodesk Exchange Apps for Autodesk Inventor helps you achieve greater speed, accuracy, and automation from concept to manufacturing.

Connect with Inventor

Twitter

Facebook

Blogs

Pinterest

Youtube