private void Data_AnyPropertyChanged(object sender, EventArgs e) { foreach (SummaryProperty summaryProperty in this) { foreach (SmartEntityProperty property in summaryProperty.EntityPropertyDataCollection) { OnPropertyChanged(new PropertyChangedEventArgs(property.Name)); } } if (_hasObjectOnLockedLayer) { _hasObjectOnLockedLayer = false; OnLockedLayerEventHandler?.Invoke(this, EventArgs.Empty); // Один или несколько объектов расположены на заблокированном слое, обновить их невозможно MessageBox.Show(Language.GetItem("mpESKD", "h104"), MessageBoxIcon.Alert); } }
private void Property_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (_isModifiedFromAutocad) { return; } Overrule.Overruling = false; var intellectualEntityProperty = (IntellectualEntityProperty)sender; try { using (AcadUtils.Document.LockDocument()) { using (var blockReference = _blkRefObjectId.Open(OpenMode.ForWrite, true, true) as BlockReference) { var entityType = _intellectualEntity.GetType(); var propertyInfo = entityType.GetProperty(intellectualEntityProperty.Name); if (propertyInfo != null) { if (intellectualEntityProperty.Name == "Style") { var style = StyleManager.GetStyleByName(entityType, intellectualEntityProperty.Value.ToString()); if (style != null) { _intellectualEntity.ApplyStyle(style, false); } } else if (intellectualEntityProperty.Name == "LayerName") { if (blockReference != null) { blockReference.Layer = intellectualEntityProperty.Value.ToString(); } } else if (intellectualEntityProperty.Name == "LineType") { if (blockReference != null) { blockReference.Linetype = intellectualEntityProperty.Value.ToString(); } } else { propertyInfo.SetValue(_intellectualEntity, intellectualEntityProperty.Value); } _intellectualEntity.UpdateEntities(); _intellectualEntity.GetBlockTableRecordWithoutTransaction(blockReference); using (var resBuf = _intellectualEntity.GetDataForXData()) { if (blockReference != null) { blockReference.XData = resBuf; } } if (blockReference != null) { blockReference.ResetBlock(); } } } } Autodesk.AutoCAD.Internal.Utils.FlushGraphics(); } catch (System.Exception exception) { if (exception.Message != "eOnLockedLayer") { ExceptionBox.Show(exception); } else { OnLockedLayerEventHandler?.Invoke(this, intellectualEntityProperty); } } Overrule.Overruling = true; }