在绘制了一些图形后,我想要这些图形置底,不把别的图形遮盖了,找到 DrawOrderTable的 MoveToBottom方法,然后写了这些代码,测试可用
/// <summary>
/// 绘图次序 置底
/// </summary>
/// <param name="doc"></param>
/// <param name="entities"></param>
public static void DrawOrderToBottom(Document doc, List<Entity>entities)
{
ObjectIdCollection collection = new ObjectIdCollection();
for (int i = 0; i < entities.Count; i++)
{
collection.Add(entities[i].ObjectId);
}
Database db = doc.Database;
Editor ed = doc.Editor;
try
{
using (doc.LockDocument())
{
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite, false);
BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite, false);
DrawOrderTable orderTable = tr.GetObject(btr.DrawOrderTableId, OpenMode.ForWrite) as DrawOrderTable;
orderTable.MoveToBottom(collection);
tr.Commit();
}
}
}
catch (Autodesk.AutoCAD.Runtime.Exception exc)
{
}
}