private static bool Correction(_AcDb.Entity ent, string suffix, bool isContinuous) { if (ent.Layer.EndsWith(suffix, StringComparison.OrdinalIgnoreCase)) { return(false); // already handled } var ltr = (_AcDb.LayerTableRecord)_Tr.GetObject(ent.LayerId, _AcDb.OpenMode.ForRead); var li = new LayerInfo(ltr, _Tr); if (isContinuous) { li.NewLineType = "Continuous"; } li.NewLayer = ent.Layer + suffix; li.CreateNewLayer(); li.UnlockOldLayer(); ent.UpgradeOpen(); ent.Layer = li.NewLayer; //const string prefix = "Autodesk.AutoCAD.DatabaseServices."; //string typeString = ent.GetType().ToString(); //if (typeString.Contains(prefix)) typeString = typeString.Substring(prefix.Length); //log.Info("\nEntity " + ent.ObjectId.ToString() + " of type " + typeString + " found on layer " + // ent.Layer + " with colour " + ent.Color.ToString()); return(true); }
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); }