We are creating 3D PDF files from Autodesk Publisher for our client to use for review of the assemblies. Feedback from the client has revealed that they are struggling to navigate the parts hierarchy tree in Adobe Acrobat Viewer because all the parts are displayed using the part numbers which Autodesk Publisher uses by default.
Is it possible to develop a .NET application which can access the 3D element of the PDF file, traverse the parts hierarchy and replace the item name with an alternative which could be looked up from the original Autodesk Inventor 3D model?
We are also seeing if we can use the Part Description instead of the Part Number when creating the 3D PDF file but I appreciate that that discussion is to be held elsewhere.
[ moved to the SDK forum as it's more of a coding question than a 3D question ]
In theory yes - while there's not a lot of high-level access through the 3D plugin made available to the SDK, you can of course read the raw data from the file structure with or without Acrobat and the SDK to help - but remember that the node data is inside the embedded U3D or PRC file, not in the PDF page structure. You'd basically be deflating the PDF stream, finding the file in the PDF COS structure as binary data, pulling it out, parsing it like a standalone model then putting it back. If you'e not touching the rest of the PDF document you'll be better off with a standalone application instead of a plugin.
The 'could be looked up' bit is the nasty part, although the IPJ project file is XML, the IAM/IPT formats that actually contain the iPart properties are closed binary data. The part numbers are of course just the filenames, but you'd need to export a BOM as a CSV or spreadsheet and have your custom application do a text lookup if you wanted to find the parts within an assembly.
This appears to be quite encouraging. Amusingly the 'could be looked up' bit is the easy bit for me as I have good experience of accessing the Autodesk Inventor API and manipulating part and assembly objects.
However I have no experience in the structure of a PDF document with a 3D model embedded within.
I would prefer to write my own .NET application, using Visual Studio, and was hoping to reference a PDF API so that I could use the available methods and properties to get a reference to the 3D model and then traverse the model hierarchy replacing the part names.
Any guidance or links would be gratefully received.
I definitely think that what you are trying to achieve is doable. We've done this type of stuff as a plug-in on the CAD application side or as a plug-in directly from Acrobat. If you are interested in discussing in more detail, please send us an e-mail at: email@example.com and let us know what the best way to get in touch.
Thank you for your reply. We've got a few ideas which we will try and if we still can't get the Inventor part Descriptions into the parts tree then I may contact you.
Not sure if it's exactly what you're looking for, but have you considered embedding a script in the pdf which allows end users to click on individual parts and have the part number displayed in a field in the pdf? I've found this to be useful in sharing 3d assembly models with the part names coming directly from Rhino models exported as .step files and imported into a 3d PDF template.
Take a look at the following, very basic example (this is what I originally used as a starting point for the script and then set up my own template skin in Illustrator and then placed all the necessary fields in acrobat and saved all this as a template into which the .step file could be imported): http://acrobatusers.com/assets/collections/tutorials/legacy/tech_corne rs/3d/3d_tutorials/basic_interaction.pdf