public static ObjectId CheckLayerState(this LayerInfo layer, bool checkProps) { var layers = new List <LayerInfo> { layer }; var dictLays = CheckLayerState(layers, checkProps); return(dictLays.First().Value); }
public static ObjectId CheckLayerState([NotNull] string layer) { var li = new LayerInfo(layer); var layersInfo = new List <LayerInfo> { li }; var dictLays = CheckLayerState(layersInfo); dictLays.TryGetValue(layer, out var res); return(res); }
public static ObjectId GetLayerOrCreateNew([NotNull] this LayerInfo layerInfo) { ObjectId idLayer; var db = HostApplicationServices.WorkingDatabase; // Если уже был создан слой, то возвращаем его. Опасно, т.к. перед повторным запуском команды покраски, могут удалить/переименовать слой марок. using var lt = (LayerTable)db.LayerTableId.Open(OpenMode.ForRead); idLayer = lt.Has(layerInfo.Name) ? lt[layerInfo.Name] : CreateLayer(layerInfo, lt); return(idLayer); }
public static Dictionary <string, ObjectId> CheckLayerState([NotNull] string[] layers) { var layersInfo = new List <LayerInfo>(); foreach (var item in layers) { var li = new LayerInfo(item); layersInfo.Add(li); } return(CheckLayerState(layersInfo)); }
public static ObjectId CreateLayer([NotNull] this LayerInfo layerInfo, [NotNull] LayerTable lt) { if (layerInfo.Name.IsNullOrEmpty()) { return(lt.Database.Clayer); } ObjectId idLayer; // Если слоя нет, то он создается. using var newLayer = new LayerTableRecord(); layerInfo.SetProp(newLayer, lt.Database); lt.UpgradeOpen(); idLayer = lt.Add(newLayer); lt.DowngradeOpen(); return(idLayer); }
public static void Polyline( [CanBeNull] Layers.LayerInfo layer = null, [CanBeNull] Color color = null, LineWeight?lineWeight = null, [CanBeNull] string lineType = null, double?lineTypeScale = null) { // Обертка запуска команды рисования полилинии с заданными свойствами. var doc = Application.DocumentManager.MdiActiveDocument; var db = doc.Database; // Вызов команды рисования полилинии using (new DrawParameters(db, layer, color, lineWeight, lineType, lineTypeScale)) { doc.Editor.Command("_PLINE"); } }
public DrawParameters(Database db, LayerInfo layer = null, Color color = null, LineWeight? lineWeight = null, string lineType = null, double? lineTypeScale = null) { this.db = db; // Сохранение текущих свойств чертежа oldLayer = db.Clayer; oldColor = db.Cecolor; oldLineWeight = db.Celweight; oldLineType = db.Celtype; oldLineScale = db.Celtscale; Layer = layer; Color = color; LineWeight = lineWeight; LineType = lineType; LineTypeScale = lineTypeScale; // установка новых свойств чертежу Setup(); }
public static ObjectId CheckLayerState(this LayerInfo layer) { return(CheckLayerState(layer, false)); }
public static ObjectId CheckLayerState(string layer) { LayerInfo li = new LayerInfo(layer); List<LayerInfo> layersInfo = new List<LayerInfo>(); layersInfo.Add(li); var dictLays = CheckLayerState(layersInfo); ObjectId res; dictLays.TryGetValue(layer, out res); return res; }
public static Dictionary<string, ObjectId> CheckLayerState(string[] layers) { List<LayerInfo> layersInfo = new List<LayerInfo>(); foreach (var item in layers) { LayerInfo li = new LayerInfo(item); layersInfo.Add(li); } return CheckLayerState(layersInfo); }
public static void Copy() { Init(); ToCopy = new List<ColorArea>(); // Выбор блоков зон покраски. var idsSelect = GetSelection(); Base = Ed.GetPointWCS("Базовая точка"); Layers = new Dictionary<string, LayerInfo>(); // Фильтр зон покраски using (var t = Db.TransactionManager.StartTransaction()) { foreach (var idBlRef in idsSelect) { var blRef = idBlRef.GetObject(OpenMode.ForRead, false, true) as BlockReference; if (blRef == null) continue; var blName = blRef.GetEffectiveName(); if (blName.Equals(Settings.Default.BlockColorAreaName, StringComparison.OrdinalIgnoreCase)) { ColorArea ca = new ColorArea(blRef); ToCopy.Add(ca); // добавление слоя в словарь if(!Layers.ContainsKey(blRef.Layer)) { LayerInfo li = new LayerInfo(blRef.LayerId); Layers.Add(li.Name, li); } } } t.Commit(); } Ed.WriteMessage($"\nСкопировано {ToCopy.Count} блоков зон покраски."); }
private void loadLayers() { // Слой контур панели IdLayerContourPanel = ExportFacade.ContourPanel.CreateLayerContourPanel(); // Слой Окна var layer = new LayerInfo(Settings.Default.LayerWindows); IdLayerWindow = LayerExt.GetLayerOrCreateNew(layer); // Слой размеров на фасаде layer = new LayerInfo(Settings.Default.LayerDimensionFacade); layer.Color = Color.FromColorIndex(ColorMethod.ByLayer, 192); IdLayerDimFacade = LayerExt.GetLayerOrCreateNew(layer); // Слой размеров в форме layer = new LayerInfo(Settings.Default.LayerDimensionForm); layer.Color = Color.FromColorIndex(ColorMethod.ByLayer, 63); IdLayerDimForm = LayerExt.GetLayerOrCreateNew(layer); }