public void TransferDimStyles() { LayerManager lm = new LayerManager(); Database dbStandart = new Database(false, true); dbStandart.ReadDwgFile(lm.PathToStadartFile, FileShare.Read, true, ""); List<DimStyleTableRecord> standartDimStyless = GetDimStyles(dbStandart); ObjectIdCollection col = GetStandartDimStyles(standartDimStyless, true); CopyEtalonStyle(col); List<DimStyleTableRecord> docDimStyles = GetDimStyles(targetDB); DimStyleTableRecord pikStyleActive = docDimStyles.Select(x => x).Where(x => x.Name.ToUpper().Equals("PIK")).ToList()[0]; DimStyleTableRecord pikStyleDiametricDimension = docDimStyles.Select(x => x).Where(x => x.Name.ToUpper().Equals("PIK$2")).ToList()[0]; DimStyleTableRecord pikStyleRadialDimension = docDimStyles.Select(x => x).Where(x => x.Name.ToUpper().Equals("PIK$3")).ToList()[0]; DimStyleTableRecord pikStyleLineAngularDimension = docDimStyles.Select(x => x).Where(x => x.Name.ToUpper().Equals("PIK$4")).ToList()[0]; DimStyleTableRecord[] masDimStyles = new DimStyleTableRecord[] { pikStyleActive, pikStyleDiametricDimension, pikStyleRadialDimension, pikStyleLineAngularDimension }; targetDB.Dimstyle = pikStyleActive.ObjectId; Dictionary<string, ObjectId[]> dicDeleteDimStyles = GetDependentPrimitives(docDimStyles.Select(x => x.Name).ToArray()); Union(dicDeleteDimStyles, masDimStyles); }
public void TransferTextStyles() { LayerManager lm = new LayerManager(); Database dbStandart = new Database(false, true); dbStandart.ReadDwgFile(lm.PathToStadartFile, FileShare.Read, true, ""); //Список стилей в стандарте List<TextStyleTableRecord> listStandartTextStyles = GetStyles(dbStandart); //стиль для установки в текущий TextStyleTableRecord pikStyle = listStandartTextStyles.Select(x => x).Where(x => x.Name.Equals("PIK")).ToList()[0]; //Копируем основной стиль из стандарта CopyEtalonStyle(listStandartTextStyles); //Список стилей в документе List<TextStyleTableRecord> listActiveDocTextStyles = GetStyles(targetDB); //Получаем основной стиль в документе TextStyleTableRecord pikStyleActive = listActiveDocTextStyles.Select(x => x).Where(x => x.Name.Equals("PIK")).ToList()[0]; //Устанавливаем текущий стиль Application.SetSystemVariable("TEXTSTYLE", pikStyleActive.Name); List<string> exceptLayers = new List<string>(); //Вычитание слоев для их удаления exceptLayers = listActiveDocTextStyles.Select(x => x.Name).Except((listStandartTextStyles).Select(y => y.Name)).ToList(); List<string> intersectLayers = new List<string>(); //Пересечение слоев для установки свойств стандарта intersectLayers = listActiveDocTextStyles.Select(x => x.Name).Intersect((listStandartTextStyles).Select(y => y.Name)).ToList(); Dictionary<string, ObjectId[]> dicDeleteTextStyles = GetDependentPrimitives(listActiveDocTextStyles.Select(x => x.Name).ToArray()); //foreach (TextStyleTableRecord textRecord in listStandartTextStyles) //{ // //Установка свойств стандарта // SetSettings(textRecord.Name, textRecord); //} //Замена и удаление стилей нестандартных Union(dicDeleteTextStyles, pikStyleActive); }