예제 #1
0
        private static bool CorrectionRest(_AcDb.Entity ent)
        {
            string suffix = "";

            var ltr = (_AcDb.LayerTableRecord)_Tr.GetObject(ent.LayerId, _AcDb.OpenMode.ForRead);
            var li  = new LayerInfo(ltr, _Tr);

            if (IsActuallyContintuous(ent, li))
            {
                suffix         = "_L";
                li.NewLineType = "Continuous";
            }
            else
            {
                suffix         = "_V";
                li.NewLineType = "Verdeckt";
            }

            if (ent.Layer.EndsWith(suffix, StringComparison.OrdinalIgnoreCase))
            {
                return(false);                                                                // already handled
            }
            li.NewLayer = ent.Layer + suffix;
            li.CreateNewLayer();

            li.UnlockOldLayer();
            ent.UpgradeOpen();
            ent.Layer      = li.NewLayer;
            ent.LinetypeId = LayerInfo.GetLinetypeFromName("ByLayer", _Tr, _Db);

            return(true);
        }