public void Copy(Database dbDest, string sourceFile, TemplateItemEnum copyItems) { using (var dbSrc = new Database(false, false)) { dbSrc.ReadDwgFile(sourceFile, FileOpenMode.OpenForReadAndAllShare, false, string.Empty); dbSrc.CloseInput(true); using (var t = dbSrc.TransactionManager.StartTransaction()) { // Слои try { if (copyItems.HasFlag(TemplateItemEnum.LayerFilters)) { ImportLayerFilter.ImportLayerFilterTree(dbSrc, dbDest); } else if (copyItems.HasFlag(TemplateItemEnum.Layers)) { ImportLayerFilter.CopyLayers(dbSrc, dbDest); } if (copyItems.HasFlag(TemplateItemEnum.LayerStates)) { ImportLayerState.ImportLayerStates(dbDest, dbSrc); } } catch (Exception ex) { Logger.Log.Error(ex, "CopyFromTemplate слои"); $"Ошибка копирования слоев - {ex.Message}".WriteToCommandLine(); } if (copyItems.HasFlag(TemplateItemEnum.TextStyles)) { CopySymbolTableItems(dbSrc.TextStyleTableId, dbDest.TextStyleTableId, "Текстовые стили"); } if (copyItems.HasFlag(TemplateItemEnum.DimStyles)) { CopySymbolTableItems(dbSrc.DimStyleTableId, dbDest.DimStyleTableId, "Размерные стили"); } if (copyItems.HasFlag(TemplateItemEnum.TableStyles)) { CopyDbDictItems(dbSrc.TableStyleDictionaryId, dbDest.TableStyleDictionaryId, "Табличные стили"); } if (copyItems.HasFlag(TemplateItemEnum.MLeaderStyles)) { CopyDbDictItems(dbSrc.MLeaderStyleDictionaryId, dbDest.MLeaderStyleDictionaryId, "Стили мультивыноски"); } t.Commit(); } } }
public static void ImportLayerFilterAndState([NotNull] this Database dbDest, string sourceFile) { try { using (var dbSrc = new Database(false, false)) { dbSrc.ReadDwgFile(sourceFile, FileOpenMode.OpenForReadAndAllShare, false, string.Empty); dbSrc.CloseInput(true); using (var t = dbSrc.TransactionManager.StartTransaction()) { ImportLayerFilterTree(dbSrc, dbDest); ImportLayerState.ImportLayerStates(dbDest, dbSrc); t.Commit(); } } } catch (Exception ex) { Inspector.AddError($"Ошибка имполра фильтра слоев из из файла '{sourceFile}' - {ex.Message}"); } }