nam_h_tran
in reply to: 18348401357

Thanks, base on you i found this topic:
Topic about layer unlock, faded,hide ( chinese language)  

And here is my code for that: 

Regen Layers :

 

 

           var lt = (LayerTable)tr.GetObject(db.LayerTableId, OpenMode.ForRead);
           ObjectId[] layerIds = lt.Cast<ObjectId>().ToArray();
           RegenLayers(layerIds);        

        public static void RegenLayers(ObjectId[] layerIds)
        {
            dynamic acad = Application.AcadApplication;

            int majorVersion = int.Parse(acad.Version.Split('.')[0]);
            var type = majorVersion >= 21
                ? Assembly.Load("accoremgd")?.GetType("Autodesk.AutoCAD.Internal.CoreLayerUtilities")
                : Assembly.Load("acmgd")?.GetType("Autodesk.AutoCAD.Internal.LayerUtilities");

            var majorInfo = type?.GetMethod("RegenLayers", new[] { typeof(ObjectId[]), typeof(int) });
            var propertyInfo = type?.GetProperties().FirstOrDefault(e => e.Name == "RegenPending");
            var regenPending = (int)(propertyInfo?.GetValue(null) ?? 0);

            majorInfo?.Invoke(null, new object[] { layerIds, regenPending });
        }