Is my drawing a AUD drawing?

By Augusto Goncalves (@augustomaia)

It’s possible to check if a drawing was created using Civil 3D by checking its Named Objects Dictionary for a ‘root’ key, as demonstrated by Isaac at this blog post. Now we want the same for Autodesk Utility Design, is it possible?

Indeed the same approach should work, just need to check for a different key, in this case UUDMDICTIONARY. There is also one additional step, check for “Configuration:RUS” custom property on the drawing.

The following code sample demonstrate this approach. It can be used as an extension method for Database.

public static bool IsAUDDatabase(this Database db){  using (Transaction trans = db.TransactionManager.StartOpenCloseTransaction())  {    // must have this NOD key    DBDictionary namedObjectDict = trans.GetObject(db.NamedObjectsDictionaryId,      OpenMode.ForRead) as DBDictionary;    if (!namedObjectDict.Contains("UUDMDICTIONARY")) return false;     // must also have a "Configuration:RUS" custom property    IDictionaryEnumerator summary = db.SummaryInfo.CustomProperties;    while (summary.MoveNext())     {      if (summary.Key.ToString().Equals("CONFIGURATION", StringComparison.OrdinalIgnoreCase) &&         summary.Value.ToString().Equals("RUS", StringComparison.OrdinalIgnoreCase))        return true; // found it!    }      return false;  }}

Comments

Leave a Reply

Discover more from Autodesk Developer Blog

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

Continue reading