/// <summary> /// 更新选择的同类设备自身属性 /// </summary> public UpdataResult UpdataSelfAttribute(ref List <BulkChangeEnt> Current, XProps objDev) { UpdataResult ur = new UpdataResult(); try { DCadApi.isModifySymbol = true; foreach (var ent in Current) { try { var value = DevEventHandler.GetDevTables(ent.SingleG3EObject.G3E_FNO, ent.SingleG3EObject.G3E_FID); if (value.DevObj != null) { PartialCopy(objDev, value.DevObj); //查找看看该设备是否有符号,有的就要根据属性更新符号 ObjectId objId = DBEntityFinder.Instance.GetObjectIdByFid(ent.SingleG3EObject.G3E_FID); if (objId.IsNull) { UpdateAttribute(value, value.DevObj, false); ur.UpdataSucceedNum++; } else { ObjectId newObjId = ObjectId.Null; bool isUpdate = DCadApi.UpdateSymbol(objId, value.DevObj, out newObjId); if (isUpdate) { UpdateAttribute(value, value.DevObj, false); ur.UpdataSucceedNum++; } else { //存放更新失败的设备 ur.UpdataFailedNum++; ur.UpdataErrorLog.AppendLine("Fid=" + ent.SingleG3EObject.G3E_FID + "的设备更新失败"); } } } PublicMethod.Instance._isSelectedEntityChoice = false; } catch (Exception) { ur.UpdataFailedNum++; ur.UpdataErrorLog.AppendLine("Fid=" + ent.SingleG3EObject.G3E_FID + "的设备更新失败"); } } } catch (Exception ex) { LogManager.Instance.Error(ex); } finally { DCadApi.isModifySymbol = false; } return(ur); }
/// <summary> /// 更新公共属性 /// </summary> public UpdataResult UpdataCommonAttribute(ref List <BulkChangeEnt> Current, XProps objDev) { UpdataResult ur = new UpdataResult(); try { DCadApi.isModifySymbol = true; foreach (var ent in Current) { try { //查看是否有没有公共属性表 var simpleEntry = DeviceAttributeConfig.Instance.Attributes.SingleOrDefault(o => o.Fno == ent.SingleG3EObject.G3E_FNO); if (simpleEntry != null) { if (!simpleEntry.Common.PropertiesFromTable.Any()) { ur.UpdataFailedNum++; ur.UpdataErrorLog.AppendLine(ent.SingleG3EObject.G3E_FID.ToString() + "没有公共属性表"); continue; } } } catch (Exception) { ur.UpdataFailedNum++; //ur.UpdataErrorLog.AppendLine("CAD实体查找错误,ObjectID="+ent.SingleG3EObject.G3E_FID); } #region try { var value = DevEventHandler.GetDevTables(ent.SingleG3EObject.G3E_FNO, ent.SingleG3EObject.G3E_FID); if (value.DevObj != null) { PartialCopy(objDev, value.DevObj); //查找看看该设备是否有符号,有的就要根据属性更新符号 ObjectId objId = DBEntityFinder.Instance.GetObjectIdByFid(ent.SingleG3EObject.G3E_FID); if (objId.IsNull) { UpdateAttribute(value, value.DevObj, true); ur.UpdataSucceedNum++; } else { ObjectId newObjId = ObjectId.Null; bool isUpdate = DCadApi.UpdateSymbol(objId, value.DevObj, out newObjId); if (isUpdate) { UpdateAttribute(value, value.DevObj, true); ur.UpdataSucceedNum++; } else { //存放更新失败的设备 ur.UpdataFailedNum++; ur.UpdataErrorLog.AppendLine("Fid=" + ent.SingleG3EObject.G3E_FID + "的设备更新失败 "); } } } } catch (Exception) { ur.UpdataFailedNum++; ur.UpdataErrorLog.AppendLine("Fid=" + ent.SingleG3EObject.G3E_FID + "的设备更新失败 "); } PublicMethod.Instance._isSelectedEntityChoice = false; #endregion } } catch (Exception ex) { LogManager.Instance.Error(ex); } finally { DCadApi.isModifySymbol = false; } return(ur); }
private void btRef_Click(object sender, EventArgs e) { UpdataResult ur = null; try { //检测有无修改了才更新 if (!GenerateHelper.IsAllDefault(objDev)) { _isRef = true; } if (_isRef) { if (MessageBox.Show("确定更新属性吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) { if (!CommonHelp.Instance.CheckIsNUll(objDev, currentFno)) { MessageBox.Show("为确保数据统一建议所属单位、所属变电站、受电馈线同时修改.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1); return; } _isRef = false; //根据更改选项之前的值来更新属性 if (_tempItem.Contains("全部")) { ur = CommonHelp.Instance.UpdataCommonAttribute(ref bulkChangeEnts, objDev); } else { //过滤出要更新的设备 var ents = bulkChangeEnts.Where(o => o.LayerName.Equals(_tempItem)).ToList(); ur = CommonHelp.Instance.UpdataSelfAttribute(ref ents, objDev); } } } } catch (Exception) { } finally { if (MenuControl.orderVerify != null) { List <BulkChangeEnt> temp = new List <BulkChangeEnt>(); if (!_tempItem.Equals("全部")) { var ents = bulkChangeEnts.Where(o => o.LayerName.Equals(_tempItem)); temp.AddRange(ents); } else { temp.AddRange(bulkChangeEnts); } bulkOrderWorkifyArgs bulkArgs = new bulkOrderWorkifyArgs { bulkChangeList = temp }; if (RefBulkModify != null) { RefBulkModify(new object(), bulkArgs); } } if (ur != null) { MessageBox.Show( string.Format("成功修改{0}个设备\n修改失败{1}个设备\n{2}", ur.UpdataSucceedNum, ur.UpdataFailedNum, ur.UpdataFailedNum != 0 ? "未修改成功的设备:\n" + ur.UpdataErrorLog.ToString() : ""), "CAD提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }