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

Adding revision number exported to filename

A while ago i struggled with the below code and with your help i've worked with it pleasently. Now the question is to add the revision number of the exported document to the filename (if there is a revision number).  

 

This code is used to export current or all open drawings to PDF and/or DWG. This saves a lot of time to export 50+ drawings of a project. 

 

When i edit the code i'm coming to 2 outcome's:

1. it is looking at the revision number of the shown model and not the drawings revision number. 

2. it is only looking at the current open drawing's revision number and adding it to all filenames.

 

Now i can update the revision numbers to the models by hand, but that's not ideal.

 

Sub Main()
	oInvApp = ThisApplication
	Dim myDate As String = Now().ToString("dd-MM-yyyy")
	myDate = myDate.Replace(":","")  ' & " - " & TypeString
	userChoice = InputRadioBox("Defined the scope", "This Document", "All Open Documents", True, Title := "Defined the scope")
	UserSelectedActionList = New String(){"DWG & PDF", "PDF Only", "DWG Only"}
	UserSelectedAction = InputListBox("What action must be performed with selected views?", _
	UserSelectedActionList, UserSelectedActionList(0), Title := "Action to Perform", ListName := "Options")
	Select UserSelectedAction
	Case "DWG & PDF": UserSelectedAction = 3
	Case "PDF Only": UserSelectedAction = 1
	Case "DWG Only": UserSelectedAction = 2
	End Select
	If userChoice Then
		Call MakePDFFromDoc(oInvApp.ActiveDocument, myDate, UserSelectedAction)
	Else
		For Each oDoc In oInvApp.Documents
			If oDoc.DocumentType <> kDrawingDocumentObject Then Continue For
			Try
				If Len(oDoc.File.FullFileName) > 0 Then
					Call MakePDFFromDoc(oDoc, myDate, UserSelectedAction)
				End If
			Catch
			End Try
		Next
	End If
 End Sub
 
 Dim oInvApp As Inventor.Application
 
 Sub MakePDFFromDoc(ByRef oDocument As Document, DateString As String, UserSelectedAction As Integer)
	'oPath = oDocument.Path
	'oFileName = oDocument.FileName(False) 'without extension
	'oDocument = ThisApplication.ActiveDocument
	Dim sDescript As String = oDocument.PropertySets("Design Tracking Properties")("Description").Value
	oPDFAddIn = oInvApp.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
	oContext = oInvApp.TransientObjects.CreateTranslationContext
	oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
	oOptions = oInvApp.TransientObjects.CreateNameValueMap
	oDataMedium = oInvApp.TransientObjects.CreateDataMedium
	oFullFileName = oDocument.File.FullFileName
	oPath = Left(oFullFileName, InStrRev(oFullFileName, "\")-1)
	oFileName = Right(oFullFileName, Len(oFullFileName)-InStrRev(oFullFileName, "\"))
'	oFilePart = Left(oFileName, InStrRev(oFileName, ".") - 1)
	oFilePart = Left(oFileName, InStrRev(oFileName, ".") - 1) & " " & sDescript
	'oRevNum = oDocument.iProperties.Value("Project", "Revision Number")
	'oDocument = ThisApplication.ActiveDocument
	'If oPDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
	oOptions.Value("All_Color_AS_Black") = 0
	oOptions.Value("Remove_Line_Weights") = 1
	oOptions.Value("Vector_Resolution") = 400
	oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
	'oOptions.Value("Custom_Begin_Sheet") = 2
	'oOptions.Value("Custom_End_Sheet") = 4
	' End If
	'get PDF target folder path
	'oFolder = Left(oPath, InStrRev(oPath, "\")) & "PDF"
	oFolder = oPath & "\Export DWG & PDF (" & DateString & ")"
	oDirectoryName = System.IO.Path.GetDirectoryName(oFullFileName)
	'Check for the PDF folder and create it if it does not exist
	If Not System.IO.Directory.Exists(oFolder) Then
		System.IO.Directory.CreateDirectory(oFolder)
	End If
	'Set the PDF target file name
	oDataMedium.FileName = oFolder & "\" & oFilePart & ".pdf"
	'Publish document
	If (UserSelectedAction = 1) Or (UserSelectedAction = 3) Then
		oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)'For PDF's
	End If
	If (UserSelectedAction = 2) Or (UserSelectedAction = 3) Then
		oDocument.SaveAs(oFolder & "\" & oFilePart & ".dwg", True) 'For DWG's
	End If
	'oDocument.SaveAs(oFolder & "\" & ThisDoc.ChangeExtension(".DWG"), True) 'For DWG's
	'------end of iLogic-------
 End Sub