实体对象都有一个层属性,可以直接修改该属性。
比如 C#:
private void SetEntityToLayer()
{
// 隐藏选择实体的层。
MxDrawUtility mxUtility = new MxDrawUtility();
// 当用户在图上选择一个对象。
MxDrawPoint getPt;
MxDrawEntity ent = mxUtility.GetEntity(out getPt, "\n 选择要移动的实体对象:");
if (ent == null)
{
return;
}
// 得到数据库对象.
MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase();
// 得到层表.
MxDrawLayerTable layerTable = database.GetLayerTable();
string sLayerName = "layer";
// 得到层。
MxDrawLayerTableRecord layer = layerTable.GetAt(sLayerName, true);
if (layer == null)
{
// 如果没有层,就新建一个层。
axMxDrawX1.AddLayer(sLayerName);
}
else
{
// 如果层被删除,就反删除。
layer.SetProp("unErase", null);
}
// 设置实体层名到指定层上。
ent.Layer = sLayerName;
MessageBox.Show("已将该实体设置到指定图层");
}