using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
[assembly: CommandClass(typeof(FieldRemove.MyCommands))]
namespace FieldRemove
{
public class MyCommands
{
[CommandMethod("RemoveFieldsWithHyperlink")]
public void MyCommand()
{
// Put your command code here
Document doc = Application.DocumentManager.MdiActiveDocument;
if (doc == null) return;
Editor ed = doc.Editor;
PromptEntityOptions opts =
new PromptEntityOptions("\nВыберите DBText: ");
opts.SetRejectMessage("\nЭто не DBText!");
opts.AddAllowedClass(typeof(DBText), true);
PromptEntityResult res = ed.GetEntity(opts);
if (res.Status != PromptStatus.OK)
return;
using (Transaction tr = doc.TransactionManager.StartTransaction())
{
DBText text = tr.GetObject(res.ObjectId, OpenMode.ForWrite) as DBText;
if (text != null && text.HasFields)
{
ObjectId idField = text.GetField();
Field field = tr.GetObject(idField, OpenMode.ForWrite) as Field;
field.Erase();
text.RecordGraphicsModified(true);
}
tr.Commit();
}
}
}
}