AutoCAD .net API中可以用如下代码来设置entity的颜色为bylayer,请注意 BYLAYER的colorIndex为256。很简单,光贴代码。
[CommandMethod("SetColorByLayer")] public void SetColorByLayer() { ObjectId objId = GetSelectEntity(); using (Transaction trans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction()) { Entity ent = trans.GetObject(objId, OpenMode.ForWrite) as Entity; //the corlor index of "BYLAYER" is 256, "BYBLOCK" is 0 ent.Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(Autodesk.AutoCAD.Colors.ColorMethod.ByLayer, 256); trans.Commit(); } } private ObjectId GetSelectEntity() { ObjectId oid = ObjectId.Null; using (DocumentLock docLoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument()) { PromptEntityOptions selectionOp = new PromptEntityOptions("\nselect entity"); PromptEntityResult prRes = ed.GetEntity(selectionOp); if (prRes.Status == PromptStatus.OK) { oid = prRes.ObjectId; } } return oid; }