I have one street feature class on which i have created network dataset.There is a widht,height,weight restriction field . No If i want to reduce the width restricted for particular road segment then in ArcGIS Network Analyst 10,it's mentioned that it will do the parial rebuild but when i tried from the ArcMap and it's not working. I have used Editor tool in ArcMap and started editing and change the width value then when i try to solve the route the changes is not reflecing in that. Do i have to explicitly rebuild the dataset or it will do the automatically ? If it will do the automatic partial build then from Web application what is the starndard way to change the field value?
Any time you make edits to your source features which participate in your network dataset, you must explicitly rebuild the network dataset to reflect those edits. This can be done by right-clicking your network dataset in ArcCatalog and clicking the 'Build' command or by calling the 'Build Network' geoprocessing tool. If you are trying to do this from a web application, then the web developer would have to programmatically provide you some way of performing the build (e.g., using a low-level call to the ArcObjects API or by calling the 'Build Network' geoprocessing tool).
Hello Michael, I have still confusion about the rebuild process,if i think of real time application(production system) ,If on daily basis there is new restriction getting inserted into the system,so to reflect those edits in Network analysis we need to stop the Network analysis services and during rebuild process we can not perfrom network analysis. Can you suggest the solution for this problem ,otherwise like rebuild process is taking 30-40 mins then the application will be down during that time ,what we want is that we need those changes to be reflected into the system immeditaly what would be the solution for this?
Are you just changing restriction attribute values? If so, are you changing them for all of your source features? What is the use-case scenario for why you are changing them daily?
If you wish to represent restriction attributes which are truly as dynamic as your scenario seems to suggest, without rebuilding the network dataset each time, then you can use a non-cached attribute evaluator to calculate the restriction attributes dynamically at solve time, as needed. This would not require a rebuild each time you update the values dynamically, as the rebuild process is only necessary for cached attribute values (such as those based on field evaluators). This is because attribute values for non-cached evaluators are not built into the network dataset. Rather, they are dynamically evaluated at solve time. Examples of non-cached attribute evaluators would be a VB-Script evaluator, a function evaluator, or a custom evaluator (created using custom programming).
VB-Script evaluators are simple to setup and use, but can be slow (and you are still somewhat limited in the data you can provide to them). Function evaluators for restriction attributes are limited to simple relational logic based on attribute parameters or constants. If you are trying to read custom data from some dynamic data source or you require advanced evaluation logic, and you wish to maintain relatively good performance, then I would suggest that you consider creating a custom-programmed evaluator for your purposes. I can provide you with some examples of custom evaluators, if necessary, once I know more about whether this is the best option for you, based on your responses to my earlier questions.
Hello Michael, Thanks for quick reply. I am not changing the Restriction Attribute values and it's not for all the source features. I am changing width(Road widht) of only one feature from the source feature class. Now i am passing vehicle width as parameter to the WidthRestriction attribute,it will compare Road widht and Vehicle width ,if vehicle width is greater then the Road widht it should restriction to travel from that road(feature). So like to reflect that road width change(that is only for one feature) i need to always rebuild the process.Is non-cached attribute evalutor or custom evalutor would be the solution for this?
If you are editing only one feature, then (at ArcGIS 10) you should be able to do a partial rebuild that only rebuilds the parts of the network dataset associated with that changed feature (which should typically be very fast). Therefore, you should not likely be seeing 30-40 minute build times in this case. How are you editing this single feature? Are you making any other changes to the network dataset at all (e.g., changing attribute settings, etc.)?
Throught Workspace object i am connecting to GeoDatabase and doing StartEditing and using IFeatureCursor i am updating the feature values. I have ArcCatalog/ArcMap 10 but the ArcGIS Server version is 9.3 and ArcSDE 9.3. I have created ArcSDE Service and Database and then connected that database thru ArcCatalog 10 and created Network Dataset but when i am trying rebuild the Network dataset from ArcCatalog 10 its giving message that network dataset is already built(ArcCatalog 10 is allwoing to build the network dataset only one time after network dataset has created). When i am trying from ArcMap 10 it's able rebuild the Network Dataset but for this i have to stop the ArcGIS (Map Services) services otherwise it's giving lock problem.
I am not clear about the partial build functionality becuase there is not seperate option for partial rebuild or may be partial build is the automatic Process we don't need to trigger it explicitly?
For partial rebuild ArcSDE and ArcGIS server also needs to be of version 10?
I am only updating the feature field value ,not updating any Attribute of network dataset or settings.
Network datasets in a 9.3 ArcSDE database do not support partial rebuilds, which could explain why your build times take so long, even for a single feature change. You should upgrade your network dataset to 10 in order to get the partial rebuild functionality.