XData Uygulama Adlarının Listelenmesi
Autodesk.AutoCAD.DatabaseServices.DBObject sınıfına ait yerleşik nesnelere, farklı uygulama adlarıyla veri (XData) eklenebilmektedir. Aşağıdaki örnek kod, bu uygulama adlarının AutoCad komut satırında nasıl listelenebileceğini göstermekte.
[CommandMethod("GetXDataAppNames")]
public void GetXDataAppNames()
{
// Aktif döküman, veritabanı ve editöre erişim
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
// Eklenmiş veriyi (XData) içeren nesnenin seçimi
PromptEntityOptions opt = new PromptEntityOptions("\nBir nesne seçin: ");
PromptEntityResult res = ed.GetEntity(opt);
if (res.Status == PromptStatus.OK)
{
using (Transaction tr = doc.TransactionManager.StartTransaction())
{
// Nesnenin okuma amaçlı açılması
DBObject obj = tr.GetObject(res.ObjectId, OpenMode.ForRead);
// Eklenmiş verinin eldesi
ResultBuffer rb = obj.XData;
if (rb != null)
{
TypedValue[] tvArray = rb.AsArray();
rb.Dispose();
// Uygulama adlarının komut satırına yazdırılması
foreach (TypedValue tv in tvArray)
{
if ((DxfCode)tv.TypeCode == DxfCode.ExtendedDataRegAppName)
{
ed.WriteMessage("\n{0}", tv.Value);
}
}
}
}
}
}
Yorum yapın