public void EditOperation2(FeatureLayer transformerBankLayer, Dictionary <string, object> transformerBankAttributes, FeatureLayer poleLayer, Dictionary <string, object> poleAttributes) { #region Create utility network features and associations in a single edit operation // Create an EditOperation EditOperation editOperation = new EditOperation(); editOperation.Name = "Create pole; create transformer bank; attach transformer bank to pole"; // Create the transformer bank RowToken transformerBankToken = editOperation.CreateEx(transformerBankLayer, transformerBankAttributes); // Create a pole RowToken poleToken = editOperation.CreateEx(poleLayer, poleAttributes); // Create a structural attachment association between the pole and the transformer bank RowHandle poleHandle = new RowHandle(poleToken); RowHandle transformerBankHandle = new RowHandle(transformerBankToken); StructuralAttachmentAssociationDescription poleAttachment = new StructuralAttachmentAssociationDescription(poleHandle, transformerBankHandle); editOperation.Create(poleAttachment); // Execute the EditOperation editOperation.Execute(); #endregion }
public void EditOperation(UtilityNetwork utilityNetwork, AssetType poleAssetType, Guid poleGlobalID, AssetType transformerBankAssetType, Guid transformerBankGlobalID) { #region Create a utility network association // Create edit operation EditOperation editOperation = new EditOperation(); editOperation.Name = "Create structural attachment association"; // Create a RowHandle for the pole Element poleElement = utilityNetwork.CreateElement(poleAssetType, poleGlobalID); RowHandle poleRowHandle = new RowHandle(poleElement, utilityNetwork); // Create a RowHandle for the transformer bank Element transformerBankElement = utilityNetwork.CreateElement(transformerBankAssetType, transformerBankGlobalID); RowHandle transformerBankRowHandle = new RowHandle(transformerBankElement, utilityNetwork); // Attach the transformer bank to the pole StructuralAttachmentAssociationDescription structuralAttachmentAssociationDescription = new StructuralAttachmentAssociationDescription(poleRowHandle, transformerBankRowHandle); editOperation.Create(structuralAttachmentAssociationDescription); editOperation.Execute(); #endregion }
public MyGroupRowData CreateGroupRowData(RowHandle groupRowHandle) { MyGroupRowData rowData = new MyGroupRowData(visualDataTreeBuilder); UpdateGroupRowData(rowData, groupRowHandle); UpdateFixedNoneContentWidth(rowData); return(rowData); }
public void ActivateRecord(Geometry geometry) { QueuedTask.Run(() => { try { var layers = MapView.Active.Map.GetLayersAsFlattenedList(); var pfL = layers.FirstOrDefault(l => l is ParcelLayer) as ParcelLayer; // if there is no fabric in the map then exit if (pfL == null) { return; } var recordsLayer = MapView.Active.Map.FindLayers("Records").FirstOrDefault() as BasicFeatureLayer; if (recordsLayer == null) { ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Records Layer is not found.", "Error", System.Windows.MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } RowCursor rowCursor = null; // define a spatial query filter var spatialQueryFilter = new SpatialQueryFilter { // passing the search geometry to the spatial filter FilterGeometry = geometry, // define the spatial relationship between search geometry and feature class SpatialRelationship = SpatialRelationship.Intersects }; // apply the spatial filter to the feature layer in question rowCursor = recordsLayer.Search(spatialQueryFilter); RowHandle rowHandle = null; var featName = string.Empty; if (rowCursor.MoveNext()) { var row = rowCursor.Current; rowHandle = new RowHandle(row); featName = Convert.ToString(row["NAME"]); } if (rowHandle != null) { // Reference the parcel record and set it as the active record var parcelRecord = new ParcelRecord(rowHandle.Token); pfL.SetActiveRecord(parcelRecord); ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Record activated: " + featName, "Info", System.Windows.MessageBoxButton.OK, MessageBoxImage.Information); } } catch (Exception exc) { // Catch any exception found and display in a message box ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Exception caught: " + exc.Message); return; } }); }
void UpdateGroupFooterSummaryContent(RowHandle groupRowHandle) { if (GroupRowData == null) { GroupRowData = View.CreateGroupRowData(groupRowHandle); } else { View.UpdateGroupRowData(GroupRowData, groupRowHandle); } }
public void RefreshContent() { if (View == null) { return; } RowHandle groupRowHandle = GetParentRowHandle(); View.AddToCacheGroupFooter(this); UpdateVisibility(groupRowHandle); if (Visibility == Visibility.Collapsed) { return; } UpdateGroupFooterSummaryContent(groupRowHandle); UpdateOffset(); }
protected async void CreateNewRecord() { #region Create a new record await QueuedTask.Run(async() => { var myParcelFabricLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType <ParcelLayer>().FirstOrDefault(); string sNewRecordName = "myNewRecord"; Dictionary <string, object> RecordAttributes = new Dictionary <string, object>(); var recordsLayer = await myParcelFabricLayer.GetParcelSubLayerAsync(ParcelSubLayerType.Records); var editOper = new EditOperation() { Name = "Create Parcel Fabric Record", ProgressMessage = "Create Parcel Fabric Record...", ShowModalMessageAfterFailure = true, SelectNewFeatures = false, SelectModifiedFeatures = false }; RecordAttributes.Add("Name", sNewRecordName); var editRowToken = editOper.CreateEx(recordsLayer, RecordAttributes); RowHandle rowHandle = new RowHandle(editRowToken); if (!editOper.Execute()) { return; } long lOid = rowHandle.ObjectID.Value; Guid guid = rowHandle.GlobalID.Value; await myParcelFabricLayer.SetActiveRecordAsync(guid); }); #endregion }
public override int GetHashCode() { return(Column.GetHashCode() + RowHandle.GetHashCode()); }
void UpdateVisibility(RowHandle groupRowHandle) { Visibility = IsLastRowInGroup(groupRowHandle.Value) ? Visibility.Visible : Visibility.Collapsed; }
protected override Task <bool> OnSketchCompleteAsync(Geometry geometry) { QueuedTask.Run(() => { try { var layers = MapView.Active.Map.GetLayersAsFlattenedList(); var fL = layers.FirstOrDefault(l => l is FeatureLayer) as FeatureLayer; // if there is no featurelayer in the map then exit if (fL == null) { return; } var fLayer = MapView.Active.Map.FindLayers("Overall SVI - Tracts").FirstOrDefault() as BasicFeatureLayer; if (fLayer == null) { ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Tracts layer is not found.", "Error"); return; } RowCursor rowCursor = null; // define a spatial query filter var spatialQueryFilter = new SpatialQueryFilter { // passing the search geometry to the spatial filter FilterGeometry = geometry, // define the spatial relationship between search geometry and feature class SpatialRelationship = SpatialRelationship.Intersects }; // apply the spatial filter to the feature layer in question rowCursor = fLayer.Search(spatialQueryFilter); RowHandle rowHandle = null; var pctAge65 = string.Empty; if (rowCursor.MoveNext()) { var row = rowCursor.Current; rowHandle = new RowHandle(row); pctAge65 = Convert.ToString(row["EP_AGE65"]); } if (rowHandle != null) { // Get the editbox or the dockpane textbox value string txtBoxString = null; if (Module1.Current.blnDockpaneOpenStatus == false) { // Use value in the edit box txtBoxString = Module1.Current.QueryValueEditBox.Text; if (txtBoxString == null || txtBoxString == "") { Module1.Current.QueryValueEditBox.Text = "Age > 65: " + pctAge65 + "%"; } else { MessageBox.Show("Query value exists on Ribbon", "Query Text"); } } if (Module1.Current.blnDockpaneOpenStatus == true) { _dockpane = FrameworkApplication.DockPaneManager.Find("GraphicTools_TextPane") as TextPaneViewModel; txtBoxString = _dockpane.QueryTxtBoxDoc; if (txtBoxString == null || txtBoxString == "") { _dockpane.QueryTxtBoxDoc = "Age > 65: " + pctAge65 + "%"; } else { MessageBox.Show("Query value exists in Text pane", "Query Text"); } } } } catch (Exception exc) { // Catch any exception found and display in a message box ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Exception caught: " + exc.Message); return; } }); return(base.OnSketchCompleteAsync(geometry)); }
/// <summary> /// Called when the sketch finishes. This is where we will create the sketch operation and then execute it. /// </summary> /// <param name="geometry">The geometry created by the sketch.</param> /// <returns>A Task returning a Boolean indicating if the sketch complete event was successfully handled.</returns> protected override async Task <bool> OnSketchCompleteAsync(Geometry geometry) { if (geometry == null) { return(false); } // Create an edit operation var createOperation = new EditOperation(); createOperation.Name = "Create Transformer Bank"; createOperation.SelectNewFeatures = true; bool success = false; string errorMessage = ""; await QueuedTask.Run(() => { Map map = GetMap(); using (UtilityNetwork utilityNetwork = GetUtilityNetwork()) { if (utilityNetwork == null) { errorMessage = "Please select a layer that participates in a utility network."; } else { using (UtilityNetworkDefinition utilityNetworkDefinition = utilityNetwork.GetDefinition()) // Get the NetworkSource, AssetGroup, and AssetTypes for all of the features we want to create // If this was production code, you would want to check the return values to make sure that these asset groups and asset types existed. // TransformerBank using (NetworkSource transformerBankNetworkSource = utilityNetworkDefinition.GetNetworkSource(AssemblyNetworkSourceName)) using (AssetGroup transformerBankAssetGroup = transformerBankNetworkSource.GetAssetGroup(TransformerBankAssetGroupName)) using (AssetType transformerBankAssetType = transformerBankAssetGroup.GetAssetType(TransformerBankAssetTypeName)) // Transformer using (NetworkSource deviceNetworkSource = utilityNetworkDefinition.GetNetworkSource(DeviceNetworkSourceName)) using (AssetGroup transformerAssetGroup = deviceNetworkSource.GetAssetGroup(TransformerAssetGroupName)) using (AssetType transformerAssetType = transformerAssetGroup.GetAssetType(TransformerAssetTypeName)) // Arrester using (AssetGroup arresterAssetGroup = deviceNetworkSource.GetAssetGroup(ArresterAssetGroupName)) using (AssetType arresterAssetType = arresterAssetGroup.GetAssetType(ArresterAssetTypeName)) // Fuse using (AssetGroup fuseAssetGroup = deviceNetworkSource.GetAssetGroup(FuseAssetGroupName)) using (AssetType fuseAssetType = fuseAssetGroup.GetAssetType(FuseAssetTypeName)) { MapPoint clickPoint = geometry as MapPoint; // Create a transformer bank Layer transformerBankLayer = GetLayerForEdit(map, AssemblyNetworkSourceName, TransformerBankAssetGroupName); RowToken token = createOperation.CreateEx(transformerBankLayer, CreateAttributes(transformerBankAssetGroup, transformerBankAssetType, clickPoint)); RowHandle transformerBankHandle = new RowHandle(token); // Create three transformers, one for each phase Layer transformerLayer = GetLayerForEdit(map, DeviceNetworkSourceName, TransformerAssetGroupName); MapPoint transformerPointA = CreateOffsetMapPoint(clickPoint, -1 * XOffset, YOffset); token = createOperation.CreateEx(transformerLayer, CreateDeviceAttributes(transformerAssetGroup, transformerAssetType, transformerPointA, APhase)); RowHandle transformerHandleA = new RowHandle(token); MapPoint transformerPointB = CreateOffsetMapPoint(clickPoint, 0, YOffset); token = createOperation.CreateEx(transformerLayer, CreateDeviceAttributes(transformerAssetGroup, transformerAssetType, transformerPointB, BPhase)); RowHandle transformerHandleB = new RowHandle(token); MapPoint transformerPointC = CreateOffsetMapPoint(clickPoint, XOffset, YOffset); token = createOperation.CreateEx(transformerLayer, CreateDeviceAttributes(transformerAssetGroup, transformerAssetType, transformerPointC, CPhase)); RowHandle transformerHandleC = new RowHandle(token); // Create containment associations between the bank and the transformers ContainmentAssociationDescription containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, transformerHandleA, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, transformerHandleB, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, transformerHandleC, false); createOperation.Create(containmentAssociationDescription); // Create three arresters, one for each phase Layer arresterLayer = GetLayerForEdit(map, DeviceNetworkSourceName, ArresterAssetGroupName); MapPoint arresterPointA = CreateOffsetMapPoint(clickPoint, -1 * XOffset, 2 * YOffset); token = createOperation.CreateEx(arresterLayer, CreateDeviceAttributes(arresterAssetGroup, arresterAssetType, arresterPointA, APhase)); RowHandle arresterHandlA = new RowHandle(token); MapPoint arresterPointB = CreateOffsetMapPoint(clickPoint, 0, 2 * YOffset); token = createOperation.CreateEx(arresterLayer, CreateDeviceAttributes(arresterAssetGroup, arresterAssetType, arresterPointB, BPhase)); RowHandle arresterHandleB = new RowHandle(token); MapPoint arresterPointC = CreateOffsetMapPoint(clickPoint, XOffset, 2 * YOffset); token = createOperation.CreateEx(arresterLayer, CreateDeviceAttributes(arresterAssetGroup, arresterAssetType, arresterPointC, CPhase)); RowHandle arresterHandleC = new RowHandle(token); // Create containment associations between the bank and the arresters containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, arresterHandlA, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, arresterHandleB, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, arresterHandleC, false); createOperation.Create(containmentAssociationDescription); // Find the high-side terminal for transformers TerminalConfiguration transformerTerminalConfiguration = transformerAssetType.GetTerminalConfiguration(); IReadOnlyList <Terminal> terminals = transformerTerminalConfiguration.Terminals; Terminal highSideTerminal = terminals.First(x => x.IsUpstreamTerminal == true); long highSideTerminalID = highSideTerminal.ID; // Connect the high-side transformer terminals to the arresters (connect the A-phase transformer to the A-phase arrester, and so on) ConnectivityAssociationDescription connectivityAssociationDescription = new ConnectivityAssociationDescription(transformerHandleA, highSideTerminalID, arresterHandlA); createOperation.Create(connectivityAssociationDescription); connectivityAssociationDescription = new ConnectivityAssociationDescription(transformerHandleB, highSideTerminalID, arresterHandleB); createOperation.Create(connectivityAssociationDescription); connectivityAssociationDescription = new ConnectivityAssociationDescription(transformerHandleC, highSideTerminalID, arresterHandleC); createOperation.Create(connectivityAssociationDescription); // Create three fuses, one for each phase Layer fuseLayer = GetLayerForEdit(map, DeviceNetworkSourceName, FuseAssetGroupName); MapPoint fusePointA = CreateOffsetMapPoint(clickPoint, -1 * XOffset, 3 * YOffset); token = createOperation.CreateEx(fuseLayer, CreateDeviceAttributes(fuseAssetGroup, fuseAssetType, fusePointA, APhase)); RowHandle fuseHandleA = new RowHandle(token); MapPoint fusePointB = CreateOffsetMapPoint(clickPoint, 0, 3 * YOffset); token = createOperation.CreateEx(fuseLayer, CreateDeviceAttributes(fuseAssetGroup, fuseAssetType, fusePointB, BPhase)); RowHandle fuseHandleB = new RowHandle(token); MapPoint fusePointC = CreateOffsetMapPoint(clickPoint, XOffset, 3 * YOffset); token = createOperation.CreateEx(fuseLayer, CreateDeviceAttributes(fuseAssetGroup, fuseAssetType, fusePointC, CPhase)); RowHandle fuseHandleC = new RowHandle(token); // Create containment associations between the bank and the fuses containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, fuseHandleA, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, fuseHandleB, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new ContainmentAssociationDescription(transformerBankHandle, fuseHandleC, false); createOperation.Create(containmentAssociationDescription); // Create connectivity associations between the fuses and the arresters (connect the A-phase fuse the A-phase arrester, and so on) connectivityAssociationDescription = new ConnectivityAssociationDescription(fuseHandleA, arresterHandlA); createOperation.Create(connectivityAssociationDescription); connectivityAssociationDescription = new ConnectivityAssociationDescription(fuseHandleB, arresterHandleB); createOperation.Create(connectivityAssociationDescription); connectivityAssociationDescription = new ConnectivityAssociationDescription(fuseHandleC, arresterHandleC); createOperation.Create(connectivityAssociationDescription); // Execute the edit operation, which creates all of the rows and associations success = createOperation.Execute(); if (!success) { errorMessage = createOperation.ErrorMessage; } } } } }); if (!success) { MessageBox.Show(errorMessage, "Create Transformer Bank Tool"); } return(success); }
/// <summary> /// Called when the sketch finishes. This is where we will create the sketch operation and then execute it. /// </summary> /// <param name="geometry">The geometry created by the sketch.</param> /// <returns>A Task returning a Boolean indicating if the sketch complete event was successfully handled.</returns> protected override async Task <bool> OnSketchCompleteAsync(Geometry geometry) { if (geometry == null) { return(false); } // Create an edit operation var createOperation = new EditOperation() { Name = "Create Transformer Bank", SelectNewFeatures = true }; bool success = false; string errorMessage = ""; await QueuedTask.Run(() => { Map map = GetMap(); using (UtilityNetwork utilityNetwork = GetUtilityNetwork()) { if (utilityNetwork == null) { errorMessage = "Please select a layer that participates in a utility network."; } else { if (!ValidateDataModel(utilityNetwork)) { errorMessage = "This sample is designed for a different utility network data model"; } else { using (UtilityNetworkDefinition utilityNetworkDefinition = utilityNetwork.GetDefinition()) // Get the NetworkSource, FeatureClass, AssetGroup, and AssetTypes for all of the features we want to create // The existence of these values has already been confirmed in the ValidateDataModel() routine // TransformerBank using (NetworkSource transformerBankNetworkSource = GetNetworkSource(utilityNetworkDefinition, AssemblyNetworkSourceName)) using (FeatureClass transformerBankFeatureClass = utilityNetwork.GetTable(transformerBankNetworkSource) as FeatureClass) using (AssetGroup transformerBankAssetGroup = transformerBankNetworkSource.GetAssetGroup(TransformerBankAssetGroupName)) using (AssetType transformerBankAssetType = transformerBankAssetGroup.GetAssetType(TransformerBankAssetTypeName)) // Transformer using (NetworkSource deviceNetworkSource = GetNetworkSource(utilityNetworkDefinition, DeviceNetworkSourceName)) using (FeatureClass deviceFeatureClass = utilityNetwork.GetTable(deviceNetworkSource) as FeatureClass) using (AssetGroup transformerAssetGroup = deviceNetworkSource.GetAssetGroup(TransformerAssetGroupName)) using (AssetType transformerAssetType = transformerAssetGroup.GetAssetType(TransformerAssetTypeName)) // Arrester using (AssetGroup arresterAssetGroup = deviceNetworkSource.GetAssetGroup(ArresterAssetGroupName)) using (AssetType arresterAssetType = arresterAssetGroup.GetAssetType(ArresterAssetTypeName)) // Fuse using (AssetGroup fuseAssetGroup = deviceNetworkSource.GetAssetGroup(FuseAssetGroupName)) using (AssetType fuseAssetType = fuseAssetGroup.GetAssetType(FuseAssetTypeName)) { MapPoint clickPoint = geometry as MapPoint; // Create a transformer bank RowToken token = createOperation.CreateEx(transformerBankFeatureClass, CreateAttributes(transformerBankAssetGroup, transformerBankAssetType, clickPoint)); RowHandle transformerBankHandle = new RowHandle(token); // Create three transformers, one for each phase MapPoint transformerPointA = CreateOffsetMapPoint(clickPoint, -1 * XOffset, YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(transformerAssetGroup, transformerAssetType, transformerPointA, APhase)); RowHandle transformerHandleA = new RowHandle(token); MapPoint transformerPointB = CreateOffsetMapPoint(clickPoint, 0, YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(transformerAssetGroup, transformerAssetType, transformerPointB, BPhase)); RowHandle transformerHandleB = new RowHandle(token); MapPoint transformerPointC = CreateOffsetMapPoint(clickPoint, XOffset, YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(transformerAssetGroup, transformerAssetType, transformerPointC, CPhase)); RowHandle transformerHandleC = new RowHandle(token); // Create containment associations between the bank and the transformers AssociationDescription containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, transformerHandleA, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, transformerHandleB, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, transformerHandleC, false); createOperation.Create(containmentAssociationDescription); // Find the high-side terminal for transformers TerminalConfiguration transformerTerminalConfiguration = transformerAssetType.GetTerminalConfiguration(); IReadOnlyList <Terminal> terminals = transformerTerminalConfiguration.Terminals; Terminal highSideTerminal = terminals.First(x => x.IsUpstreamTerminal == true); long highSideTerminalID = highSideTerminal.ID; // Create three fuses, one for each phase MapPoint fusePointA = CreateOffsetMapPoint(clickPoint, -1 * XOffset, 2 * YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(fuseAssetGroup, fuseAssetType, fusePointA, APhase)); RowHandle fuseHandleA = new RowHandle(token); MapPoint fusePointB = CreateOffsetMapPoint(clickPoint, 0, 2 * YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(fuseAssetGroup, fuseAssetType, fusePointB, BPhase)); RowHandle fuseHandleB = new RowHandle(token); MapPoint fusePointC = CreateOffsetMapPoint(clickPoint, XOffset, 2 * YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(fuseAssetGroup, fuseAssetType, fusePointC, CPhase)); RowHandle fuseHandleC = new RowHandle(token); // Create containment associations between the bank and the fuses containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, fuseHandleA, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, fuseHandleB, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, fuseHandleC, false); createOperation.Create(containmentAssociationDescription); // Connect the high-side transformer terminals to the fuses (connect the A-phase transformer to the A-phase fuse, and so on) AssociationDescription connectivityAssociationDescription = new AssociationDescription(AssociationType.JunctionJunctionConnectivity, transformerHandleA, highSideTerminalID, fuseHandleA); createOperation.Create(connectivityAssociationDescription); connectivityAssociationDescription = new AssociationDescription(AssociationType.JunctionJunctionConnectivity, transformerHandleB, highSideTerminalID, fuseHandleB); createOperation.Create(connectivityAssociationDescription); connectivityAssociationDescription = new AssociationDescription(AssociationType.JunctionJunctionConnectivity, transformerHandleC, highSideTerminalID, fuseHandleC); createOperation.Create(connectivityAssociationDescription); // Create three arresters, one for each phase MapPoint arresterPointA = CreateOffsetMapPoint(clickPoint, -1 * XOffset, 3 * YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(arresterAssetGroup, arresterAssetType, arresterPointA, APhase)); RowHandle arresterHandleA = new RowHandle(token); MapPoint arresterPointB = CreateOffsetMapPoint(clickPoint, 0, 3 * YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(arresterAssetGroup, arresterAssetType, arresterPointB, BPhase)); RowHandle arresterHandleB = new RowHandle(token); MapPoint arresterPointC = CreateOffsetMapPoint(clickPoint, XOffset, 3 * YOffset); token = createOperation.CreateEx(deviceFeatureClass, CreateDeviceAttributes(arresterAssetGroup, arresterAssetType, arresterPointC, CPhase)); RowHandle arresterHandleC = new RowHandle(token); // Create containment associations between the bank and the arresters containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, arresterHandleA, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, arresterHandleB, false); createOperation.Create(containmentAssociationDescription); containmentAssociationDescription = new AssociationDescription(AssociationType.Containment, transformerBankHandle, arresterHandleC, false); createOperation.Create(containmentAssociationDescription); // Create connectivity associations between the fuses and the arresters (connect the A-phase fuse the A-phase arrester, and so on) connectivityAssociationDescription = new AssociationDescription(AssociationType.JunctionJunctionConnectivity, fuseHandleA, arresterHandleA); createOperation.Create(connectivityAssociationDescription); connectivityAssociationDescription = new AssociationDescription(AssociationType.JunctionJunctionConnectivity, fuseHandleB, arresterHandleB); createOperation.Create(connectivityAssociationDescription); connectivityAssociationDescription = new AssociationDescription(AssociationType.JunctionJunctionConnectivity, fuseHandleC, arresterHandleC); createOperation.Create(connectivityAssociationDescription); // Execute the edit operation, which creates all of the rows and associations success = createOperation.Execute(); if (!success) { errorMessage = createOperation.ErrorMessage; } } } } } }); if (!success) { MessageBox.Show(errorMessage, "Create Transformer Bank Tool"); } return(success); }
public void UpdateGroupRowData(MyGroupRowData rowData, RowHandle rowHandle) { rowData.UpdateRowHandle(rowHandle); UpdateCellData(rowData); rowData.UpdateMyGroupSummaryData(); }
public void UpdateRowHandle(RowHandle rowHandle) { SetRowHandle(rowHandle); }
public override PropertyDefinitionBase GetDefinition(DataController controller, DataViewBase view, RowHandle handle, bool showCategories, bool getStandard = true) { PropertyDefinitionBase result = base.GetDefinition(controller, view, handle, showCategories, getStandard); if (result is PropertyDefinition) { PropertyInfo propertyInfo = propertyGridControl.SelectedObject.GetType().GetProperty(view.GetDisplayName(handle)); if (propertyInfo != null) { EditorAttribute attribute = (EditorAttribute)propertyInfo.GetCustomAttributes(typeof(EditorAttribute), true).FirstOrDefault(); // Также ищем вспомогательный атрибут с дополнительной информацией. EditorInfoAttribute attributeInfo = (EditorInfoAttribute)propertyInfo.GetCustomAttributes(typeof(EditorInfoAttribute), true).FirstOrDefault(); if (attribute != null) { string info = attributeInfo != null ? attributeInfo.Info : null; BaseEditSettings settings = AttributesDispatcher.GetSettings(attribute.EditorTypeName, info, propertyGridControl, WixDataSource); if (settings != null) ((PropertyDefinition)result).EditSettings = settings; } } } return result; }