/// <summary> /// Сохранение в словарь объекта DBObject (ExtensionDictionary) /// </summary> public static void Save(IDboDataSave obj, Document doc) { if (doc == null || doc.IsDisposed) { return; } var dicEd = obj.GetExtDic(doc); if (dicEd == null) { return; } using (doc.LockDocument()) using (var t = doc.TransactionManager.StartTransaction()) { var idDbo = obj.GetDBObject(); if (!idDbo.IsNull) { var dbo = idDbo.GetObject(OpenMode.ForWrite); if (dbo != null) { EntDictExt ede = new EntDictExt(dbo, plugin); ede.Save(dicEd); } } t.Commit(); } }
/// <summary> /// Загрузка словаря из объекта - всех записей Xrecord /// </summary> public static DicED Load(DBObject dbo, Document doc) { DicED res = null; EntDictExt ede = new EntDictExt(dbo, plugin); res = ede.Load(); return(res); }
public static void SaveDboDict(this IDboDataSave dboSave) { var doc = Application.DocumentManager.MdiActiveDocument; using (var entDic = new EntDictExt(dboSave.GetDBObject(), dboSave.PluginName)) { entDic.Save(dboSave.GetExtDic(doc)); } }
/// <summary> /// Удаление словаря из объекта /// </summary> /// <param name="dboSave">Объект чертежа</param> /// <param name="dicName">Имя удаляемого словаря или пусто для удаления всего словаря плагина</param> public static void DeleteDboDict(this IDboDataSave dboSave, string dicName = null) { var doc = Application.DocumentManager.MdiActiveDocument; using (var entDic = new EntDictExt(dboSave.GetDBObject(), dboSave.PluginName)) { entDic.Delete(dicName); } }
public static void LoadDboDict(this IDboDataSave dboSave) { var doc = Application.DocumentManager.MdiActiveDocument; using (var entDic = new EntDictExt(dboSave.GetDBObject(), dboSave.PluginName)) { var dicED = entDic.Load(); dboSave.SetExtDic(dicED, doc); } }
private void DefineEnt(Entity ent) { var building = ElementFactory.Create <IBuilding>(ent); if (building != null) { // Если это не полилиния или блок - такие объекты пока не поддерживаются if (!(ent is Polyline) && !(ent is BlockReference)) { Inspector.AddError($"Тип здания не подходит для инсоляции - '{ent.GetRXClass().Name}', слой '{ent.Layer}'", ent, System.Drawing.SystemIcons.Error); return; } var insBuild = new MapBuilding(building); Buildings.Add(insBuild); var r = GetBuildingRectangle(insBuild); treeBuildings.Add(r, insBuild); // Подписывание на изменения объекта ent.Modified += Building_Modified; ent.Erased += Building_Erased; // Оповещение расчета о изменении здания if (IsEventsOn) { BuildingAdded?.Invoke(this, insBuild); } return; } // Сбор точек инсоляции var dbPt = ent as DBPoint; if (dbPt != null) { if (InsPointHelper.IsInsPoint(dbPt)) { InsPoints.Add(dbPt.Id); // Оповещение о создании точки if (IsEventsOn) { InsPointAdded?.Invoke(this, dbPt.Id); } } return; } var pl = ent as Polyline; if (pl != null) { var entExtDicExt = new EntDictExt(pl, InsService.PluginName); var dic = entExtDicExt.Load(); if (dic != null) { var dicPlace = dic.GetInner(Place.PlaceDicName); if (dicPlace != null) { Places.Add(new KeyValuePair <ObjectId, DicED>(pl.Id, dicPlace)); } } //// Если она на слое sapr_ins_visuals - удаление //if (VisualDatabase.IsVisualElement(ent)) //{ // ent.UpgradeOpen(); // ent.Erase(); //} } }