Identify Mechanical Desktop file(MDT) using .NET

<?xml encoding=”UTF-8″>By Deepak Nadig

Recently, we had a customer query regarding distinguishing an AutoCAD Mechanical desktop file among a set of drawing files.

Answer:
Mechanical desktop should have entry named AmdtFileType with a value of 84 in the Custom tab of DWGPROPS(image)

CustomProp

One of the ways to distinguish a Autodesk Mechanical desktop file could be to retrieve and check for the custom property as below.
Note : File to be checked is read as a side database in the code below. 

<span>[</span>CommandMethod<span>(</span><span>"</span><span>testMdtFile</span><span>"</span><span>)</span><span>]</span>
<span>public</span> <span>static</span> <span>void</span> testMdtFile<span>(</span><span>)</span>
<span>{</span>
Editor ed <span>=</span> Application<span>.</span>DocumentManager<span>.</span>MdiActiveDocument<span>.</span>Editor<span>;</span>
<span>try</span>
<span>{</span>
<span>using</span> <span>(</span>Database db <span>=</span> <span>new</span> Database<span>(</span><span>false</span><span>,</span> <span>true</span><span>)</span><span>)</span>
<span>{</span>
db<span>.</span>ReadDwgFile<span>(</span><span>@"</span><span>c:temptestMDT.dwg</span><span>"</span><span>,</span> FileOpenMode<span>.</span>OpenForReadAndAllShare<span>,</span> <span>false</span><span>,</span> <span>null</span><span>)</span><span>;</span>
db<span>.</span>CloseInput<span>(</span><span>true</span><span>)</span><span>;</span>
<span>string</span> val <span>=</span> GetCustomProperty<span>(</span>db<span>,</span> <span>"</span><span>AmdtFileType</span><span>"</span><span>)</span><span>;</span>
System<span>.</span>Windows<span>.</span>Forms<span>.</span>MessageBox<span>.</span>Show<span>(</span><span>"</span><span>Value of AmdtFileType is </span><span>"</span> <span>+</span> val<span>)</span><span>;</span>
<span>}</span>
<span>}</span>
<span>catch</span> <span>(</span>System<span>.</span>Exception ex<span>)</span>
<span>{</span>
ed<span>.</span>WriteMessage<span>(</span>ex<span>.</span>ToString<span>(</span><span>)</span><span>)</span><span>;</span>
<span>}</span>
<span>}</span>
<span>public</span> <span>static</span> <span>string</span> GetCustomProperty<span>(</span>Database db<span>,</span> <span>string</span> key<span>)</span>
<span>{</span>
DatabaseSummaryInfoBuilder sumInfo <span>=</span> <span>new</span> DatabaseSummaryInfoBuilder<span>(</span>db<span>.</span>SummaryInfo<span>)</span><span>;</span>
IDictionary custProps <span>=</span> sumInfo<span>.</span>CustomPropertyTable<span>;</span>
<span>return</span> <span>(</span><span>string</span><span>)</span>custProps<span>[</span>key<span>]</span><span>;</span>
<span>}</span>

Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading