<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: PDF batch according to BOM structure in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10363026#M49830</link>
    <description>&lt;P&gt;Hi Guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I still didn't manage to get this work for me. In the meantime I've found a topic simular to mine on this forum:&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/inventor-customization/print-pdf-need-help-skipping-reference/td-p/7822224" target="_blank"&gt;https://forums.autodesk.com/t5/inventor-customization/print-pdf-need-help-skipping-reference/td-p/7822224&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there anyone who knows how to make one working rule from these pieces?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot&lt;/P&gt;</description>
    <pubDate>Fri, 04 Jun 2021 05:49:03 GMT</pubDate>
    <dc:creator>Kassenbouw</dc:creator>
    <dc:date>2021-06-04T05:49:03Z</dc:date>
    <item>
      <title>PDF batch according to BOM structure</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10317888#M49829</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have found a ilogic rule on this forum for printing PDF files from an assembly including all parts witch works fine for this option.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="color: #b2b2b5;"&gt;'Set Folder options as you see fit here&lt;/SPAN&gt;

&lt;SPAN style="color: #db9652;"&gt;oFolder&lt;/SPAN&gt; = &lt;SPAN style="color: #b2b2b5;"&gt;'Enter Folder String here.&lt;/SPAN&gt;

&lt;SPAN style="color: #b2b2b5;"&gt;'PDF Options&lt;/SPAN&gt;
&lt;SPAN style="color: #db9652;"&gt;PDFAddIn&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;oAddIns&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;ItemById&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}"&lt;/SPAN&gt;)
&lt;SPAN style="color: #db9652;"&gt;oPDFContext&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;oTG&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;CreateTranslationContext&lt;/SPAN&gt;
&lt;SPAN style="color: #db9652;"&gt;oPDFContext&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Type&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;IOMechanismEnum&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;kFileBrowseIOMechanism&lt;/SPAN&gt;
&lt;SPAN style="color: #db9652;"&gt;oPDFOptions&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;oTG&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;CreateNameValueMap&lt;/SPAN&gt;
&lt;SPAN style="color: #db9652;"&gt;oPDFDataMedium&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;oTG&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;CreateDataMedium&lt;/SPAN&gt;
&lt;SPAN style="color: #db9652;"&gt;oPDFOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"All_Color_AS_Black"&lt;/SPAN&gt;) = 0
&lt;SPAN style="color: #db9652;"&gt;oPDFOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Remove_Line_Weights"&lt;/SPAN&gt;) = 1
&lt;SPAN style="color: #db9652;"&gt;oPDFOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Vector_Resolution"&lt;/SPAN&gt;) = 4800
&lt;SPAN style="color: #db9652;"&gt;oPDFOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Sheet_Range"&lt;/SPAN&gt;) = &lt;SPAN style="color: #db9652;"&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;PrintRangeEnum&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;kPrintAllSheets&lt;/SPAN&gt;

&lt;SPAN style="color: #b2b2b5;"&gt;'Generate List of all Documents Referenced for this Assembly.&lt;/SPAN&gt;
&lt;SPAN style="color: #db9652;"&gt;oRefDocs&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;AllReferencedDocuments&lt;/SPAN&gt;

&lt;SPAN style="color: #b2b2b5;"&gt;'Generate Document Reference.&lt;/SPAN&gt;
&lt;SPAN style="color: #ce5c95;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;Document&lt;/SPAN&gt;

&lt;SPAN style="color: #b2b2b5;"&gt;'Peruse each document in generated Documents list.&lt;/SPAN&gt;
&lt;SPAN style="color: #ce5c95;"&gt;For&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Each&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;In&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oRefDocs&lt;/SPAN&gt;

	&lt;SPAN style="color: #b2b2b5;"&gt;'Generate text string of .idw file to look for in the same folder as component file.&lt;/SPAN&gt;
	&lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;Left&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FullDocumentName&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;Len&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FullDocumentName&lt;/SPAN&gt;) - 3) &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"idw"&lt;/SPAN&gt;

	&lt;SPAN style="color: #b2b2b5;"&gt;'Check if generated drawing file name exists.&lt;/SPAN&gt;
	&lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;System&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;IO&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;File&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Exists&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt;) &lt;SPAN style="color: #ce5c95;"&gt;Then&lt;/SPAN&gt;

		&lt;SPAN style="color: #b2b2b5;"&gt;'Open drawing file.&lt;/SPAN&gt;
		&lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Documents&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Open&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt;, &lt;SPAN style="color: #ce5c95;"&gt;False&lt;/SPAN&gt;)

		&lt;SPAN style="color: #b2b2b5;"&gt;'Remove idw extension for PDF save.&lt;/SPAN&gt;
		&lt;SPAN style="color: #db9652;"&gt;oFileName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;Left&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DisplayName&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;Len&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DisplayName&lt;/SPAN&gt;) - 3)

		&lt;SPAN style="color: #b2b2b5;"&gt;'Generate text string of idw name and folder location.&lt;/SPAN&gt;
		&lt;SPAN style="color: #db9652;"&gt;oPDFDataMedium&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FileName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;oFolder&lt;/SPAN&gt; + &lt;SPAN style="color: #35b173;"&gt;"\"&lt;/SPAN&gt; + &lt;SPAN style="color: #db9652;"&gt;oFileName&lt;/SPAN&gt; + &lt;SPAN style="color: #35b173;"&gt;"pdf"&lt;/SPAN&gt;

		&lt;SPAN style="color: #b2b2b5;"&gt;'Save PDF Copy.&lt;/SPAN&gt;
		&lt;SPAN style="color: #ce5c95;"&gt;Call&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;PDFAddIn&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;SaveCopyAs&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oPDFContext&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oPDFOptions&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oPDFDataMedium&lt;/SPAN&gt;)

		&lt;SPAN style="color: #b2b2b5;"&gt;'Close drawing file.&lt;/SPAN&gt;
		&lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Close&lt;/SPAN&gt;(&lt;SPAN style="color: #ce5c95;"&gt;True&lt;/SPAN&gt;)

	&lt;SPAN style="color: #ce5c95;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt;
&lt;SPAN style="color: #ce5c95;"&gt;Next&lt;/SPAN&gt;

&lt;SPAN style="color: #b2b2b5;"&gt;'Top Level Document reference.&lt;/SPAN&gt;
&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;ActiveDocument&lt;/SPAN&gt;

&lt;SPAN style="color: #b2b2b5;"&gt;'Generate text string of .idw file to look for in the same folder as Assembly file.&lt;/SPAN&gt;
&lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;Left&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FullDocumentName&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;Len&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FullDocumentName&lt;/SPAN&gt;) - 3) &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"idw"&lt;/SPAN&gt;

&lt;SPAN style="color: #b2b2b5;"&gt;'Check if generated drawing file name exists.&lt;/SPAN&gt;
&lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;System&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;IO&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;File&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Exists&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt;) &lt;SPAN style="color: #ce5c95;"&gt;Then&lt;/SPAN&gt;

	&lt;SPAN style="color: #b2b2b5;"&gt;'Open drawing file.&lt;/SPAN&gt;
	&lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Documents&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Open&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt;, &lt;SPAN style="color: #ce5c95;"&gt;False&lt;/SPAN&gt;)

	&lt;SPAN style="color: #b2b2b5;"&gt;'Remove idw extension for PDF save.&lt;/SPAN&gt;
	&lt;SPAN style="color: #db9652;"&gt;oFileName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;Left&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DisplayName&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;Len&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DisplayName&lt;/SPAN&gt;) - 3)

	&lt;SPAN style="color: #b2b2b5;"&gt;''Generate text string of idw name and folder location.&lt;/SPAN&gt;
	&lt;SPAN style="color: #db9652;"&gt;oPDFDataMedium&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FileName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;oFolder&lt;/SPAN&gt; + &lt;SPAN style="color: #35b173;"&gt;"\"&lt;/SPAN&gt; + &lt;SPAN style="color: #db9652;"&gt;oFileName&lt;/SPAN&gt; + &lt;SPAN style="color: #35b173;"&gt;"pdf"&lt;/SPAN&gt;

	&lt;SPAN style="color: #b2b2b5;"&gt;'Save PDF Copy.&lt;/SPAN&gt;
	&lt;SPAN style="color: #ce5c95;"&gt;Call&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;PDFAddIn&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;SaveCopyAs&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oPDFContext&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oPDFOptions&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oPDFDataMedium&lt;/SPAN&gt;)

	&lt;SPAN style="color: #b2b2b5;"&gt;'Close drawing file.&lt;/SPAN&gt;
	&lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Close&lt;/SPAN&gt;(&lt;SPAN style="color: #ce5c95;"&gt;True&lt;/SPAN&gt;)
&lt;SPAN style="color: #ce5c95;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/inventor-customization/ilogic-pdf-batch-print-from-assembly-include-sub-assemblies/td-p/8190673" target="_blank" rel="noopener"&gt;https://forums.autodesk.com/t5/inventor-customization/ilogic-pdf-batch-print-from-assembly-include-sub-assemblies/td-p/8190673&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There are some things I would like to add/change to make this rule work for me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1). This rule works from file’s in the workspace. How do I get the latest files from my workspace?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Something like:&lt;/P&gt;&lt;P&gt;DownloadVaultFileToWorkspace("oDoc", False)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2). My sub-assemblies are full of suppressed parts. I want to exclude these files in the PDF plot. I think I need to add something like;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;oComps = ThisDoc.Document.ComponentDefinition.Occurrences&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For Each oComp In oComps&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If oComp.Visible Then&lt;/P&gt;&lt;P&gt;‘batch to PDF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/P&gt;&lt;P&gt;‘do nothing.&lt;/P&gt;&lt;P&gt;End If&lt;/P&gt;&lt;P&gt;Next&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3). I would like to divide the batch publish in top level only and anything else in 2 separate folders according to the bom levels ‘Structured’ and ‘Parts Only’.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Kassenbouw_0-1621251740762.jpeg" style="width: 400px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/919557i4FCC866A18460D00/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Kassenbouw_0-1621251740762.jpeg" alt="Kassenbouw_0-1621251740762.jpeg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Kassenbouw_1-1621251740763.jpeg" style="width: 400px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/919558iBFC8FCD8C6540231/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Kassenbouw_1-1621251740763.jpeg" alt="Kassenbouw_1-1621251740763.jpeg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have found some Ilogic code to make the reference to the bomview;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Sub&amp;nbsp; Main&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;BOMQuery&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' a reference to the assembly document.&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' This assumes an assembly document is active.&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&amp;nbsp;oDoc&amp;nbsp;As&amp;nbsp;AssemblyDocument&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oDoc&amp;nbsp;=&amp;nbsp;ThisApplication.ActiveDocument&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&amp;nbsp;FirstLevelOnly&amp;nbsp;As Boolean&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If&amp;nbsp;MsgBox("First level only?",&amp;nbsp;vbYesNo) =&amp;nbsp;vbYes&amp;nbsp;Then&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FirstLevelOnly&amp;nbsp;= True&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FirstLevelOnly&amp;nbsp;= False&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' a reference to the BOM&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&amp;nbsp;oBOM&amp;nbsp;As BOM&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oBOM&amp;nbsp;=&amp;nbsp;oDoc.ComponentDefinition.BOM&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' whether first level only or all levels.&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If&amp;nbsp;FirstLevelOnly&amp;nbsp;Then&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oBOM.StructuredViewFirstLevelOnly&amp;nbsp;= True&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oBOM.StructuredViewFirstLevelOnly&amp;nbsp;= False&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Make sure that the structured view is enabled.&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oBOM.StructuredViewEnabled&amp;nbsp;= True&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'a reference to the "Structured"&amp;nbsp;BOMView&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&amp;nbsp;oBOMView&amp;nbsp;As&amp;nbsp;BOMView&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oBOMView&amp;nbsp;=&amp;nbsp;oBOM.BOMViews.Item("Structured")&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone have any idea how to add these 3 pieces of code together?&lt;/P&gt;</description>
      <pubDate>Mon, 17 May 2021 11:52:25 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10317888#M49829</guid>
      <dc:creator>Kassenbouw</dc:creator>
      <dc:date>2021-05-17T11:52:25Z</dc:date>
    </item>
    <item>
      <title>Re: PDF batch according to BOM structure</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10363026#M49830</link>
      <description>&lt;P&gt;Hi Guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I still didn't manage to get this work for me. In the meantime I've found a topic simular to mine on this forum:&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/inventor-customization/print-pdf-need-help-skipping-reference/td-p/7822224" target="_blank"&gt;https://forums.autodesk.com/t5/inventor-customization/print-pdf-need-help-skipping-reference/td-p/7822224&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there anyone who knows how to make one working rule from these pieces?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot&lt;/P&gt;</description>
      <pubDate>Fri, 04 Jun 2021 05:49:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10363026#M49830</guid>
      <dc:creator>Kassenbouw</dc:creator>
      <dc:date>2021-06-04T05:49:03Z</dc:date>
    </item>
    <item>
      <title>Betreff: PDF batch according to BOM structure</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10366283#M49831</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To sync your workspace, maybe Vault Sync is useful. It's included in Vault Professional and Workgroup.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Invisible and/or suppress doesn't have any affect to the BOM. So if you want to ignore invisible occurrences, you can't use BOM structure. I think you can traverse the occurences structure of the assembly and check visibility and BOMstructure.&lt;/P&gt;&lt;P&gt;Is it correct that PDFs in "Structured" folder should only&amp;nbsp; be created from first level of BOM view structured?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Sub Main()

'Pre Rule Checks
	If ThisApplication.ActiveDocument.DocumentType &amp;lt;&amp;gt; kAssemblyDocumentObject Then
		MessageBox.Show("Please run this rule from the assembly file.", "iLogic")
		Exit Sub
	End If

	RUsure = MessageBox.Show ( _
		"This will create a PDF file for all of the visible assembly components that have drawings files." _
		&amp;amp; vbLf &amp;amp; "This rule expects that the drawing file shares the same name and location as the component." _
		&amp;amp; vbLf &amp;amp; " " _
		&amp;amp; vbLf &amp;amp; "Are you sure you want to create PDF Drawings for all of the assembly visible components?" _
		&amp;amp; vbLf &amp;amp; "This could take a while.", "iLogic  - Batch Output PDFs ",MessageBoxButtons.YesNo)

	If RUsure = vbNo Then
		Return
		Else
	End If
'/Pre Rule Checks

	Dim oAsmDoc As AssemblyDocument= ThisApplication.ActiveDocument
	Dim oAssyDef As AssemblyComponentDefinition = oAsmDoc.ComponentDefinition
	
	oAsmPathAndName = Left(oAsmDoc.FullFileName, Len(oAsmDoc.FullFileName) -4)
	oAsmDisplayName = Left(oAsmDoc.DisplayName, Len(oAsmDoc.DisplayName) -4)
	oPath = ThisDoc.Path
	oFolder = oPath &amp;amp; "\" &amp;amp; oAsmDisplayName &amp;amp; " PDF Files"	

	Call ConfigPDFSettings(oFolder)
	
	If (System.IO.File.Exists(oAsmPathAndName &amp;amp; ".idw")) Then
		oAsmDrawingDoc = ThisApplication.Documents.Open(oAsmPathAndName &amp;amp; ".idw", True)
		'Print Top Level

		oDatamedium.FileName = oFolder &amp;amp; "\" &amp;amp; oAsmDisplayName &amp;amp; ".pdf"
		Call oPDFAddIn.SaveCopyAs(oAsmDrawingDoc, oContext, oOptions, oDatamedium)
		oAsmDrawingDoc.Close
	End If
	
	Dim oOccs As ComponentOccurrences = oAsmDoc.ComponentDefinition.Occurrences
	Call RecurseOccs(oOccs)
	
	Dim oOccsEnum As ComponentOccurrencesEnumerator = oAsmDoc.ComponentDefinition.Occurrences.AllLeafOccurrences 
	Call ProcessLeafOccs(oOccsEnum)
	
	MessageBox.Show("New Files Created in: " &amp;amp; vbLf &amp;amp; oFolder, "iLogic")
	Shell("explorer.exe " &amp;amp; oFolder,vbNormalFocus)
End Sub

	Dim oFolder As String
	Dim oContext As TranslationContext
	Dim oOptions As NameValueMap 
	Dim oDatamedium As DataMedium 
	Dim oPDFAddIn As TranslatorAddIn

Sub RecurseOccs(oOccs As ComponentOccurrences)
		For Each oOcc As ComponentOccurrence In oOccs
			If oOcc.Visible = True And oOcc.Suppressed = False Then
				If oOcc.BOMStructure = BOMStructureEnum.kPhantomBOMStructure Then
					If oOcc.SubOccurrences.Count&amp;gt;0 Then
						RecurseOccs(oOcc.SubOccurrences)
					End If
				Else
					PrintOcc(oOcc, "Structured")
				End If
			End If
		Next
End Sub
	
Sub ProcessLeafOccs(oOccs As ComponentOccurrencesEnumerator)
		For Each oOcc As ComponentOccurrence In oOccs
			If oOcc.DefinitionDocumentType = DocumentTypeEnum.kPartDocumentObject Then
				If oOcc.Visible = True And oOcc.Suppressed = False Then
					PrintOcc(oOcc, "Parts only")
				End If
			End If
		Next
End Sub
	
Sub PrintOcc(oOcc As ComponentOccurrence, sTargetfolder As String)
		Dim oCompDef As ComponentDefinition
		oCompDef = oOcc.Definition

		idwPathName = Left(oCompDef.Document.FullDocumentName, Len(oCompDef.Document.FullDocumentName) - 3) &amp;amp; "idw"
		If(System.IO.File.Exists(idwPathName)) Then
			oFileName = Left(oCompDef.Document.DisplayName, Len(oCompDef.Document.DisplayName) -3)
			If Not System.IO.Directory.Exists(oFolder &amp;amp; "\" &amp;amp; sTargetfolder) Then
		    	System.IO.Directory.CreateDirectory(oFolder &amp;amp; "\" &amp;amp; sTargetfolder)
			End If
			
			oDatamedium.FileName = oFolder &amp;amp; "\" &amp;amp; sTargetFolder &amp;amp; "\" &amp;amp; oFileName &amp;amp; "pdf"
			
			If Not (System.IO.File.Exists(oDatamedium.FileName)) Then
				Dim oDrawDoc As DrawingDocument
				oDrawDoc = ThisApplication.Documents.Open(idwPathName, True)
				Call oPDFAddIn.SaveCopyAs(oDrawDoc, oContext, oOptions, oDatamedium)
				oDrawDoc.Close(True)
			End If
		Else
			'If the model has no drawing of the same path and name - do nothing
		End If
End Sub

Sub ConfigPDFSettings(oFolder As String)
		
		oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
		oContext  = ThisApplication.TransientObjects.CreateTranslationContext
		oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
		oOptions = ThisApplication.TransientObjects.CreateNameValueMap
		oDatamedium = ThisApplication.TransientObjects.CreateDataMedium

		'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

		If Not System.IO.Directory.Exists(oFolder) Then
		    System.IO.Directory.CreateDirectory(oFolder)
		End If
End Sub&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 05 Jun 2021 15:16:45 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10366283#M49831</guid>
      <dc:creator>Ralf_Krieg</dc:creator>
      <dc:date>2021-06-05T15:16:45Z</dc:date>
    </item>
    <item>
      <title>Betreff: PDF batch according to BOM structure</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10378208#M49832</link>
      <description>&lt;P&gt;Hi Krieg, thanks for the reply.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This rule only opens the drawing and then gives the error&amp;nbsp;Unspecified error (Exception from HRESULT: 0x80004005 (E_FAIL)).&lt;/P&gt;</description>
      <pubDate>Thu, 10 Jun 2021 05:51:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10378208#M49832</guid>
      <dc:creator>Kassenbouw</dc:creator>
      <dc:date>2021-06-10T05:51:14Z</dc:date>
    </item>
    <item>
      <title>Re: PDF batch according to BOM structure</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10512475#M49833</link>
      <description>&lt;P&gt;Unfortunately I didn't get this working in the meantime. I've tried to approach only the top level with a minor change. The weird thing is that the rule skips some parts and doesn't mention them in the messagebox. Does anyone have an idea what's wrong with this code and could help me to get this working?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="color: #db9652;"&gt;aSub&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;Main&lt;/SPAN&gt;()
    &lt;SPAN style="color: #ce5c95;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oAsmDoc&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;AssemblyDocument&lt;/SPAN&gt;
    &lt;SPAN style="color: #db9652;"&gt;oAsmDoc&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;ActiveDocument&lt;/SPAN&gt;
    &lt;SPAN style="color: #db9652;"&gt;oAsmName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;Left&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oAsmDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DisplayName&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;Len&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oAsmDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DisplayName&lt;/SPAN&gt;) -4)
    
    &lt;SPAN style="color: #b2b2b5;"&gt;'check that the active document is an assembly file&lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DocumentType&lt;/SPAN&gt; &amp;lt;&amp;gt; &lt;SPAN style="color: #db9652;"&gt;kAssemblyDocumentObject&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Then&lt;/SPAN&gt;
        &lt;SPAN style="color: #db9652;"&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Show&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Please run this rule from the assembly file."&lt;/SPAN&gt;, &lt;SPAN style="color: #35b173;"&gt;"iLogic"&lt;/SPAN&gt;)
        &lt;SPAN style="color: #ce5c95;"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN style="color: #b2b2b5;"&gt;'get user input&lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Show&lt;/SPAN&gt; ( _
        &lt;SPAN style="color: #35b173;"&gt;"This will create a PDF file for all of the asembly components that have drawings files."&lt;/SPAN&gt; _
        &amp;amp; &lt;SPAN style="color: #db9652;"&gt;vbLf&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"This rule expects that the drawing file shares the same name and location as the component."&lt;/SPAN&gt; _
        &amp;amp; &lt;SPAN style="color: #db9652;"&gt;vbLf&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #35b173;"&gt;" "&lt;/SPAN&gt; _
        &amp;amp; &lt;SPAN style="color: #db9652;"&gt;vbLf&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"Are you sure you want to create PDF Drawings for all of the assembly components?"&lt;/SPAN&gt; _
        &amp;amp; &lt;SPAN style="color: #db9652;"&gt;vbLf&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"This could take a while."&lt;/SPAN&gt;, &lt;SPAN style="color: #35b173;"&gt;"iLogic  - Batch Output PDFs "&lt;/SPAN&gt;,&lt;SPAN style="color: #db9652;"&gt;MessageBoxButtons&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;YesNo&lt;/SPAN&gt;) = &lt;SPAN style="color: #db9652;"&gt;vbNo&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Then&lt;/SPAN&gt;
        
        &lt;SPAN style="color: #ce5c95;"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt;
        
    &lt;SPAN style="color: #ce5c95;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;PDFAddIn&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;TranslatorAddIn&lt;/SPAN&gt;
        &lt;SPAN style="color: #ce5c95;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oContext&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;TranslationContext&lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;NameValueMap&lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oDataMedium&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;DataMedium&lt;/SPAN&gt;
    
    &lt;SPAN style="color: #ce5c95;"&gt;Call&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;ConfigurePDFAddinSettings&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;PDFAddIn&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oContext&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oDataMedium&lt;/SPAN&gt;)
    
    &lt;SPAN style="color: #db9652;"&gt;oPath&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #9d6bce;"&gt;Path&lt;/SPAN&gt;
    &lt;SPAN style="color: #db9652;"&gt;oFolder&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;oPath&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"\"&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #db9652;"&gt;oAsmName&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #35b173;"&gt;" PDF Files"&lt;/SPAN&gt;
    
    &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Not&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;System&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;IO&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Directory&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Exists&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oFolder&lt;/SPAN&gt;) &lt;SPAN style="color: #ce5c95;"&gt;Then&lt;/SPAN&gt;
        &lt;SPAN style="color: #db9652;"&gt;System&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;IO&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Directory&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;CreateDirectory&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oFolder&lt;/SPAN&gt;)
    &lt;SPAN style="color: #ce5c95;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN style="color: #b2b2b5;"&gt;'- - - - - - - - - - - - -Component Drawings - - - - - - - - - - - -'look at the files referenced by the assembly&lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oRefDoc&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;Document&lt;/SPAN&gt;
    
&lt;SPAN style="color: #b2b2b5;"&gt;'    I have changed this one from AllReferencedDocuments to ReferencedDocuments &lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;For&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Each&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oRefDoc&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;In&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oAsmDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;ReferencedDocuments &lt;/SPAN&gt;
        &lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;Left&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FullDocumentName&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;Len&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FullDocumentName&lt;/SPAN&gt;) - 3) &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"idw"&lt;/SPAN&gt;

        &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;System&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;IO&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;File&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Exists&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt;)) &lt;SPAN style="color: #ce5c95;"&gt;Then&lt;/SPAN&gt;
            &lt;SPAN style="color: #ce5c95;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;DrawingDocument&lt;/SPAN&gt;
            &lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Documents&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Open&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;idwPathName&lt;/SPAN&gt;, &lt;SPAN style="color: #ce5c95;"&gt;True&lt;/SPAN&gt;)
            &lt;SPAN style="color: #db9652;"&gt;oFileName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;Left&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DisplayName&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;Len&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;DisplayName&lt;/SPAN&gt;) -3)

            &lt;SPAN style="color: #ce5c95;"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Resume&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Next&lt;/SPAN&gt;
                &lt;SPAN style="color: #db9652;"&gt;oDataMedium&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;FileName&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;oFolder&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"\"&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #db9652;"&gt;oFileName&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #35b173;"&gt;"pdf"&lt;/SPAN&gt;
                &lt;SPAN style="color: #ce5c95;"&gt;Call&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;PDFAddIn&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;SaveCopyAs&lt;/SPAN&gt;(&lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oContext&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt;, &lt;SPAN style="color: #db9652;"&gt;oDataMedium&lt;/SPAN&gt;)
                &lt;SPAN style="color: #db9652;"&gt;oDrawDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Close&lt;/SPAN&gt;
            &lt;SPAN style="color: #ce5c95;"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;GoTo&lt;/SPAN&gt; 0
        &lt;SPAN style="color: #ce5c95;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;If&lt;/SPAN&gt;
    &lt;SPAN style="color: #ce5c95;"&gt;Next&lt;/SPAN&gt;
    &lt;SPAN style="color: #b2b2b5;"&gt;'- - - - - - - - - - - - -&lt;/SPAN&gt;
    
    &lt;SPAN style="color: #b2b2b5;"&gt;'- - - - - - - - - - - - -Top Level Drawing - - - - - - - - - - - -&lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'    Dim oAsmDrawingDoc As DrawingDocument&lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'    oAsmDrawingDocName = ThisDoc.PathAndFileName(False) &amp;amp; ".idw"&lt;/SPAN&gt;
    
&lt;SPAN style="color: #b2b2b5;"&gt;'    If(System.IO.File.Exists(oAsmDrawingDocName)) Then&lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'    oAsmDrawingDoc = ThisApplication.Documents.Open(ThisDoc.ChangeExtension(".idw"), True)&lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'    oAsmDrawingDoc = ThisApplication.Documents.Open(oAsmDrawingDocName, True) &lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'    oAsmDrawingName = Left(oAsmDrawingDoc.DisplayName, Len(oAsmDrawingDoc.DisplayName) -3) &lt;/SPAN&gt;
    
&lt;SPAN style="color: #b2b2b5;"&gt;'    On Error Resume Next &lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'        oDataMedium.FileName = oFolder &amp;amp; "\" &amp;amp; oAsmDrawingName &amp;amp; "pdf" &lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'        Call PDFAddIn.SaveCopyAs(oAsmDrawingDoc, oContext, oOptions, oDataMedium)&lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'        oAsmDrawingDoc.Close &lt;/SPAN&gt;
&lt;SPAN style="color: #b2b2b5;"&gt;'    End If &lt;/SPAN&gt;

&lt;SPAN style="color: #ce5c95;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Sub&lt;/SPAN&gt;

&lt;SPAN style="color: #ce5c95;"&gt;Sub&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;ConfigurePDFAddinSettings&lt;/SPAN&gt;(&lt;SPAN style="color: #ce5c95;"&gt;ByRef&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;PDFAddIn&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;TranslatorAddIn&lt;/SPAN&gt;, &lt;SPAN style="color: #ce5c95;"&gt;ByRef&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oContext&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;TranslationContext&lt;/SPAN&gt;, &lt;SPAN style="color: #ce5c95;"&gt;ByRef&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;NameValueMap&lt;/SPAN&gt;, &lt;SPAN style="color: #ce5c95;"&gt;ByRef&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;oDataMedium&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #db9652;"&gt;DataMedium&lt;/SPAN&gt;)

    &lt;SPAN style="color: #db9652;"&gt;oPath&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #9d6bce;"&gt;Path&lt;/SPAN&gt;
    &lt;SPAN style="color: #db9652;"&gt;PDFAddIn&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;ApplicationAddIns&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;ItemById&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}"&lt;/SPAN&gt;)
    &lt;SPAN style="color: #db9652;"&gt;oContext&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;CreateTranslationContext&lt;/SPAN&gt;
    &lt;SPAN style="color: #db9652;"&gt;oContext&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Type&lt;/SPAN&gt; = &lt;SPAN style="color: #db9652;"&gt;IOMechanismEnum&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;kFileBrowseIOMechanism&lt;/SPAN&gt;
        
    &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;CreateNameValueMap&lt;/SPAN&gt;
    &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"All_Color_AS_Black"&lt;/SPAN&gt;) = 1
    &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Remove_Line_Weights"&lt;/SPAN&gt;) = 0
    &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Vector_Resolution"&lt;/SPAN&gt;) = 400
    &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Sheet_Range"&lt;/SPAN&gt;) = &lt;SPAN style="color: #db9652;"&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;PrintRangeEnum&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;kPrintAllSheets&lt;/SPAN&gt;
    &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Custom_Begin_Sheet"&lt;/SPAN&gt;) = 1
    &lt;SPAN style="color: #db9652;"&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;Value&lt;/SPAN&gt;(&lt;SPAN style="color: #35b173;"&gt;"Custom_End_Sheet"&lt;/SPAN&gt;) = 1

    &lt;SPAN style="color: #db9652;"&gt;oDataMedium&lt;/SPAN&gt; = &lt;SPAN style="color: #9d6bce;"&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN style="color: #db9652;"&gt;CreateDataMedium&lt;/SPAN&gt;
&lt;SPAN style="color: #ce5c95;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ce5c95;"&gt;Sub&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 01 Aug 2021 18:17:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10512475#M49833</guid>
      <dc:creator>Kassenbouw</dc:creator>
      <dc:date>2021-08-01T18:17:38Z</dc:date>
    </item>
    <item>
      <title>Re: PDF batch according to BOM structure</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10512559#M49834</link>
      <description>&lt;P&gt;I tested this code and it seems to work ok once I put the files n the correct position. There was no error trap&amp;nbsp; if the file didn't exist which is maybe why you were not able to identify the issue. In my case I had not put the drawing in the correct location. So according to "&lt;SPAN&gt;idwPathName" the loop through the assembly was trying to open the file from a different path. I placed a message box there to check the path and also put in an error trap to show a list box if one or more files is not found.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;You may need to adjust the "idwPathName"&amp;nbsp; according to where you store the drawing.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;()
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt;
    &lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;
    &lt;SPAN&gt;oAsmName&lt;/SPAN&gt; = &lt;SPAN&gt;Left&lt;/SPAN&gt;(&lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt;, &lt;SPAN&gt;Len&lt;/SPAN&gt;(&lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt;) -4)
    
    &lt;SPAN&gt;'check that the active document is an assembly file&lt;/SPAN&gt;
    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentType&lt;/SPAN&gt; &amp;lt;&amp;gt; &lt;SPAN&gt;kAssemblyDocumentObject&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Please run this rule from the assembly file."&lt;/SPAN&gt;, &lt;SPAN&gt;"iLogic"&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;'get user input&lt;/SPAN&gt;
    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt; ( _
        &lt;SPAN&gt;"This will create a PDF file for all of the asembly components that have drawings files."&lt;/SPAN&gt; _
        &amp;amp; &lt;SPAN&gt;vbLf&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"This rule expects that the drawing file shares the same name and location as the component."&lt;/SPAN&gt; _
        &amp;amp; &lt;SPAN&gt;vbLf&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;" "&lt;/SPAN&gt; _
        &amp;amp; &lt;SPAN&gt;vbLf&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"Are you sure you want to create PDF Drawings for all of the assembly components?"&lt;/SPAN&gt; _
        &amp;amp; &lt;SPAN&gt;vbLf&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"This could take a while."&lt;/SPAN&gt;, &lt;SPAN&gt;"iLogic  - Batch Output PDFs "&lt;/SPAN&gt;,&lt;SPAN&gt;MessageBoxButtons&lt;/SPAN&gt;.&lt;SPAN&gt;YesNo&lt;/SPAN&gt;) = &lt;SPAN&gt;vbNo&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
      
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&lt;/SPAN&gt; = 0  
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;DrawingPathError&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;ArrayList&lt;/SPAN&gt;
	
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;PDFAddIn&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;TranslatorAddIn&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oContext&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;TranslationContext&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOptions&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;NameValueMap&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDataMedium&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;DataMedium&lt;/SPAN&gt;
    
    &lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;ConfigurePDFAddinSettings&lt;/SPAN&gt;(&lt;SPAN&gt;PDFAddIn&lt;/SPAN&gt;, &lt;SPAN&gt;oContext&lt;/SPAN&gt;, &lt;SPAN&gt;oOptions&lt;/SPAN&gt;, &lt;SPAN&gt;oDataMedium&lt;/SPAN&gt;)
    
    &lt;SPAN&gt;oPath&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Path&lt;/SPAN&gt;
    &lt;SPAN&gt;oFolder&lt;/SPAN&gt; = &lt;SPAN&gt;oPath&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"\"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oAsmName&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;" PDF Files"&lt;/SPAN&gt;
  
    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;Exists&lt;/SPAN&gt;(&lt;SPAN&gt;oFolder&lt;/SPAN&gt;) &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;Directory&lt;/SPAN&gt;.&lt;SPAN&gt;CreateDirectory&lt;/SPAN&gt;(&lt;SPAN&gt;oFolder&lt;/SPAN&gt;)
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;'- - - - - - - - - - - - -Component Drawings - - - - - - - - - - - -'look at the files referenced by the assembly&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oRefDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;
    
&lt;SPAN&gt;'    I have changed this one from AllReferencedDocuments to ReferencedDocuments &lt;/SPAN&gt;
    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oRefDoc&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt;.&lt;SPAN&gt;ReferencedDocuments&lt;/SPAN&gt; 
		
        &lt;SPAN&gt;idwPathName&lt;/SPAN&gt; = &lt;SPAN&gt;Left&lt;/SPAN&gt;(&lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;FullDocumentName&lt;/SPAN&gt;, &lt;SPAN&gt;Len&lt;/SPAN&gt;(&lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;FullDocumentName&lt;/SPAN&gt;) -3) &amp;amp; &lt;SPAN&gt;"dwg"&lt;/SPAN&gt;
		&lt;SPAN&gt;oFileName&lt;/SPAN&gt; = &lt;SPAN&gt;Left&lt;/SPAN&gt;(&lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt;, &lt;SPAN&gt;Len&lt;/SPAN&gt;(&lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt;) -3)
		&lt;SPAN&gt;'MessageBox.Show(idwPathName, "idwPathName")&lt;/SPAN&gt;

        &lt;SPAN&gt;If&lt;/SPAN&gt; (&lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;Exists&lt;/SPAN&gt;(&lt;SPAN&gt;idwPathName&lt;/SPAN&gt;))= &lt;SPAN&gt;True&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDrawDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;DrawingDocument&lt;/SPAN&gt;
            &lt;SPAN&gt;oDrawDoc&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;Documents&lt;/SPAN&gt;.&lt;SPAN&gt;Open&lt;/SPAN&gt;(&lt;SPAN&gt;idwPathName&lt;/SPAN&gt;, &lt;SPAN&gt;True&lt;/SPAN&gt;)
            &lt;SPAN&gt;On&lt;/SPAN&gt; &lt;SPAN&gt;Error&lt;/SPAN&gt; &lt;SPAN&gt;Resume&lt;/SPAN&gt; &lt;SPAN&gt;Next&lt;/SPAN&gt;
                &lt;SPAN&gt;oDataMedium&lt;/SPAN&gt;.&lt;SPAN&gt;FileName&lt;/SPAN&gt; = &lt;SPAN&gt;oFolder&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"\"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oFileName&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"pdf"&lt;/SPAN&gt;
				&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;oDataMedium&lt;/SPAN&gt;.&lt;SPAN&gt;FileName&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)

                &lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;PDFAddIn&lt;/SPAN&gt;.&lt;SPAN&gt;SaveCopyAs&lt;/SPAN&gt;(&lt;SPAN&gt;oDrawDoc&lt;/SPAN&gt;, &lt;SPAN&gt;oContext&lt;/SPAN&gt;, &lt;SPAN&gt;oOptions&lt;/SPAN&gt;, &lt;SPAN&gt;oDataMedium&lt;/SPAN&gt;)
                &lt;SPAN&gt;oDrawDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Close&lt;/SPAN&gt;
            &lt;SPAN&gt;On&lt;/SPAN&gt; &lt;SPAN&gt;Error&lt;/SPAN&gt; &lt;SPAN&gt;GoTo&lt;/SPAN&gt; 0
		&lt;SPAN&gt;Else&lt;/SPAN&gt;
			&lt;SPAN&gt;i&lt;/SPAN&gt;=&lt;SPAN&gt;i&lt;/SPAN&gt;+1
			&lt;SPAN&gt;DrawingPathError&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;oFileName&lt;/SPAN&gt;)
			&lt;SPAN&gt;'MessageBox.Show("Error Finding Path", "iLogic")&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;
	
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;Then&lt;/SPAN&gt;
		&lt;SPAN&gt;d0&lt;/SPAN&gt; = &lt;SPAN&gt;InputListBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Prompt"&lt;/SPAN&gt;, &lt;SPAN&gt;DrawingPathError&lt;/SPAN&gt;, &lt;SPAN&gt;d0&lt;/SPAN&gt;, &lt;SPAN&gt;Title&lt;/SPAN&gt; := &lt;SPAN&gt;"Error Finding Drawing Path"&lt;/SPAN&gt;, &lt;SPAN&gt;ListName&lt;/SPAN&gt; := &lt;SPAN&gt;"Drawing Names"&lt;/SPAN&gt;)
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	
    &lt;SPAN&gt;'- - - - - - - - - - - - -&lt;/SPAN&gt;
    
    &lt;SPAN&gt;'- - - - - - - - - - - - -Top Level Drawing - - - - - - - - - - - -&lt;/SPAN&gt;
&lt;SPAN&gt;'    Dim oAsmDrawingDoc As DrawingDocument&lt;/SPAN&gt;
&lt;SPAN&gt;'    oAsmDrawingDocName = ThisDoc.PathAndFileName(False) &amp;amp; ".idw"&lt;/SPAN&gt;
    
&lt;SPAN&gt;'    If(System.IO.File.Exists(oAsmDrawingDocName)) Then&lt;/SPAN&gt;
&lt;SPAN&gt;'    oAsmDrawingDoc = ThisApplication.Documents.Open(ThisDoc.ChangeExtension(".idw"), True)&lt;/SPAN&gt;
&lt;SPAN&gt;'    oAsmDrawingDoc = ThisApplication.Documents.Open(oAsmDrawingDocName, True) &lt;/SPAN&gt;
&lt;SPAN&gt;'    oAsmDrawingName = Left(oAsmDrawingDoc.DisplayName, Len(oAsmDrawingDoc.DisplayName) -3) &lt;/SPAN&gt;
    
&lt;SPAN&gt;'    On Error Resume Next &lt;/SPAN&gt;
&lt;SPAN&gt;'        oDataMedium.FileName = oFolder &amp;amp; "\" &amp;amp; oAsmDrawingName &amp;amp; "pdf" &lt;/SPAN&gt;
&lt;SPAN&gt;'        Call PDFAddIn.SaveCopyAs(oAsmDrawingDoc, oContext, oOptions, oDataMedium)&lt;/SPAN&gt;
&lt;SPAN&gt;'        oAsmDrawingDoc.Close &lt;/SPAN&gt;
&lt;SPAN&gt;'    End If &lt;/SPAN&gt;

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;

&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;ConfigurePDFAddinSettings&lt;/SPAN&gt;(&lt;SPAN&gt;ByRef&lt;/SPAN&gt; &lt;SPAN&gt;PDFAddIn&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;TranslatorAddIn&lt;/SPAN&gt;, &lt;SPAN&gt;ByRef&lt;/SPAN&gt; &lt;SPAN&gt;oContext&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;TranslationContext&lt;/SPAN&gt;, &lt;SPAN&gt;ByRef&lt;/SPAN&gt; &lt;SPAN&gt;oOptions&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;NameValueMap&lt;/SPAN&gt;, &lt;SPAN&gt;ByRef&lt;/SPAN&gt; &lt;SPAN&gt;oDataMedium&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;DataMedium&lt;/SPAN&gt;)

    &lt;SPAN&gt;oPath&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Path&lt;/SPAN&gt;
    &lt;SPAN&gt;PDFAddIn&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ApplicationAddIns&lt;/SPAN&gt;.&lt;SPAN&gt;ItemById&lt;/SPAN&gt;(&lt;SPAN&gt;"{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}"&lt;/SPAN&gt;)
    &lt;SPAN&gt;oContext&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateTranslationContext&lt;/SPAN&gt;
    &lt;SPAN&gt;oContext&lt;/SPAN&gt;.&lt;SPAN&gt;Type&lt;/SPAN&gt; = &lt;SPAN&gt;IOMechanismEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kFileBrowseIOMechanism&lt;/SPAN&gt;
        
    &lt;SPAN&gt;oOptions&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateNameValueMap&lt;/SPAN&gt;
    &lt;SPAN&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;(&lt;SPAN&gt;"All_Color_AS_Black"&lt;/SPAN&gt;) = 1
    &lt;SPAN&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;(&lt;SPAN&gt;"Remove_Line_Weights"&lt;/SPAN&gt;) = 0
    &lt;SPAN&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;(&lt;SPAN&gt;"Vector_Resolution"&lt;/SPAN&gt;) = 400
    &lt;SPAN&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;(&lt;SPAN&gt;"Sheet_Range"&lt;/SPAN&gt;) = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;PrintRangeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPrintAllSheets&lt;/SPAN&gt;
    &lt;SPAN&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;(&lt;SPAN&gt;"Custom_Begin_Sheet"&lt;/SPAN&gt;) = 1
    &lt;SPAN&gt;oOptions&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;(&lt;SPAN&gt;"Custom_End_Sheet"&lt;/SPAN&gt;) = 1

    &lt;SPAN&gt;oDataMedium&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateDataMedium&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 01 Aug 2021 19:32:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/pdf-batch-according-to-bom-structure/m-p/10512559#M49834</guid>
      <dc:creator>A.Acheson</dc:creator>
      <dc:date>2021-08-01T19:32:21Z</dc:date>
    </item>
  </channel>
</rss>

