POST
|
I am developing a Add-ins button that do a upstream trace in a network , it works correctly without any error but it does not highlight the traced elements. I do not know how to highlight the traced elements? thanks in advance using System; using System.Collections.Generic; using System.Text; using System.IO; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Editor; using ESRI.ArcGIS.EditorExt; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Geometry; using System.Windows.Forms; using ESRI.ArcGIS.NetworkAnalysis; namespace testNet { public class testNet : ESRI.ArcGIS.Desktop.AddIns.Button { private IUtilityNetworkAnalysisExt m_utilNetExt; public testNet() { UID uidUtilNet = new UIDClass(); uidUtilNet.Value = "esriEditorExt.UtilityNetworkAnalysisExt"; m_utilNetExt = ArcMap.Application.FindExtensionByCLSID(uidUtilNet) as IUtilityNetworkAnalysisExt; } protected override void OnClick() { try { INetworkAnalysisExt nax = m_utilNetExt as INetworkAnalysisExt; ITraceTasks pTraceTasks = nax as ITraceTasks; INetwork net = nax.CurrentNetwork.Network; ITraceFlowSolverGEN tfs = new TraceFlowSolverClass() as ITraceFlowSolverGEN; INetSolver netSolver = tfs as INetSolver; netSolver.SourceNetwork = net; INetworkAnalysisExtBarriers naxBarriers = m_utilNetExt as INetworkAnalysisExtBarriers; INetElementBarriers juncElemBarriers, edgeElemBarriers; naxBarriers.CreateElementBarriers(out juncElemBarriers, out edgeElemBarriers); ISelectionSetBarriers selSetBarriers; naxBarriers.CreateSelectionBarriers(out selSetBarriers); netSolver.set_ElementBarriers(esriElementType.esriETJunction, juncElemBarriers); netSolver.set_ElementBarriers(esriElementType.esriETEdge, edgeElemBarriers); netSolver.SelectionSetBarriers = selSetBarriers; INetworkAnalysisExtFlags naxFlags = m_utilNetExt as INetworkAnalysisExtFlags; int edgeFlagCount = naxFlags.EdgeFlagCount; if (edgeFlagCount > 0) { IEdgeFlag[] edgeFlags = new IEdgeFlag[edgeFlagCount]; for (int i = 0; i < edgeFlagCount; i++) { IEdgeFlagDisplay edgeFlagDisplay = naxFlags.get_EdgeFlag(i); IFlagDisplay flagDisplay = edgeFlagDisplay as IFlagDisplay; IEdgeFlag edgeFlag = new EdgeFlagClass(); edgeFlag.Position = Convert.ToSingle(edgeFlagDisplay.Percentage); INetFlag netFlag = edgeFlag as INetFlag; netFlag.UserClassID = flagDisplay.FeatureClassID; netFlag.UserID = flagDisplay.FID; netFlag.UserSubID = flagDisplay.SubID; edgeFlags = edgeFlag; } tfs.PutEdgeOrigins(ref edgeFlags); } ITraceTasks traceTasks = m_utilNetExt as ITraceTasks; tfs.TraceIndeterminateFlow = traceTasks.TraceIndeterminateFlow; IEnumNetEID resultJuncs, resultEdges; esriFlowElements flowElements = traceTasks.TraceFlowElements; if (traceTasks.TraceEnds) tfs.FindFlowEndElements(esriFlowMethod.esriFMUpstream, flowElements, out resultJuncs, out resultEdges); else tfs.FindFlowElements(esriFlowMethod.esriFMUpstream, flowElements, out resultJuncs, out resultEdges); } catch (System.Exception excep) { MessageBox.Show(excep.Message); } } protected override void OnUpdate() { } } }
... View more
02-06-2015
12:18 AM
|
0
|
1
|
3986
|
POST
|
guys my workspace is .shp file and i am using ArcGIS 10 with arcinfo license.
... View more
01-25-2015
12:45 PM
|
0
|
3
|
845
|
POST
|
if you look carefully you will find out that i created the field before populating it.
... View more
01-25-2015
12:42 PM
|
0
|
5
|
845
|
POST
|
hello guys, there is not anyone who helps me? i could not find any helpful material about this problem on internet. please help me
... View more
01-25-2015
10:36 AM
|
0
|
7
|
845
|
POST
|
I am trying to add a new field and fill the field for some of rows but I face with the following error: "The index passed was not within the valid range." My simplified codes: IMxDocument mxdoc = ArcMap.Application.Document as IMxDocument; IMap map = mxdoc.FocusMap; ILayer layer = map.Layer[0]; IFeatureLayer2 featureLayer = layer as IFeatureLayer2; IFeatureClass flFeatureClass = featureLayer.FeatureClass; IFeatureCursor featureCursor = flFeatureClass.Search(null, true); IFeature feature2 = featureCursor.NextFeature(); IFieldEdit2 newField = new FieldClass(); newField.Name_2 = "name"; newField.Editable_2 = true; newField.Type_2 = esriFieldType.esriFieldTypeString; flFeatureClass.AddField(newField); while (feature2 != null) { feature2.set_Value(flFeatureClass.FindField("name"), "rome"); feature2.Store(); feature2 = featureCursor.NextFeature(); } When i used "breakpoint" to find the error line. i found out that feature2.set_Value(flFeatureClass.FindField("name"), "rome"); is the line that causes the error (The index passed was not within the valid range). I do not know what is wrong with set_value method. when i try to update a already created field, it work right but when i want to create a new field and fill it with some data as mentioned codes , i encounter with the error. Thanks in advance
... View more
01-23-2015
01:34 PM
|
0
|
8
|
4773
|
POST
|
Really thanks, "finally { }" part solved my problem. Thanks a lot
... View more
01-23-2015
01:07 PM
|
0
|
0
|
975
|
POST
|
i changed the codes as following lines but i had the mentioned problem. i could not find any material about the way OnActivate and OnDeactivate methods work. is there anyone who can help me? protected override void OnActivate() { base.OnActivate(); MessageBox.Show("hello"); } protected override bool OnDeactivate() { return base.OnDeactivate(); }
... View more
01-21-2015
07:28 AM
|
0
|
2
|
975
|
POST
|
thanks for your quick responses. i am using c# so i converted the mentioned code to c#. but still i have the previous problem. is there any mistake to convert codes? namespace msg { public class msg : ESRI.ArcGIS.Desktop.AddIns.Tool { public msg() { } protected override void OnActivate() { base.OnActivate(); MessageBox.Show("hello"); } protected override bool OnDeactivate() { bool functionReturnValue = false; functionReturnValue = true; this.Enabled = false; return functionReturnValue; } protected override void OnMouseDown(MouseEventArgs arg) { //get map coordinate } protected override void OnUpdate() { Enabled = ArcMap.Application != null; } } }
... View more
01-20-2015
12:48 PM
|
0
|
3
|
975
|
POST
|
is there any OnClick event or other way that i can call my message box every time that i click on tool's icon?
... View more
01-20-2015
09:38 AM
|
0
|
5
|
975
|
POST
|
I am developing a Tool using Add-Ins in order to get the coordinate where user clicks on map ( through OnMouseDown event), but I want to do some operations before getting coordinates in another method. I try to explain my problem with a simple example. for example, I want to see a message box that will be called from a method ( msg method) and then user click on map and get coordinates using OnMouseDown event. my problem is that the first time that i click on tool's icon i see a message box (" hello") but the second time that i click on tool's icon, it does not show message box and tool just call OnMouseDown event. ( as i told, i do not want to have message box in OnMouseDown event) please help, thanks in advance using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Windows.Forms; namespace msg { public class msg : ESRI.ArcGIS.Desktop.AddIns.Tool { public msg() { MessageBox.Show("hello"); } protected override void OnMouseDown(MouseEventArgs arg) { //get map coordinate } protected override void OnUpdate() { Enabled = ArcMap.Application != null; } } }
... View more
01-20-2015
09:35 AM
|
0
|
6
|
5035
|
POST
|
I found it . i was looking to find it in extensions tab.whereas it was in framework tab. thanks it solved.
... View more
01-08-2015
01:49 AM
|
0
|
0
|
747
|
POST
|
so i had to add System.Runtime.Serialization manually to code behind part. but as i told already it does not work and i face with mentioned problem. using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Geometry; using ESRI.ArcGIS.Client.Toolkit; using ESRI.ArcGIS.Client.Toolkit.DataSources; using ESRI.ArcGIS.Client.Tasks; using ESRI.ArcGIS.Client.Bing; using System.Runtime.Serialization; using ESRI.ArcGIS.Client.WebMap; using ESRI.ArcGIS.Client.Symbols;
... View more
01-08-2015
01:43 AM
|
0
|
1
|
747
|
POST
|
actually i did not find System.Runtime.Serialization. i have just "System.Runtime.Serialization.Json".
... View more
01-08-2015
01:39 AM
|
0
|
2
|
747
|
POST
|
in my first message, i mentioned the references in my program and System.Runtime.Serialization is added already. but still i encounter with the mentioned error.
... View more
01-08-2015
01:29 AM
|
0
|
3
|
747
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|