I am working on an data-entry application to edit feature classes that contain several coded-value-domains. The problem with some of the domains, however, is that some entries have been added after the initial creation. So the first 25 entries are in alphabetical order and there are some stragglers at the end that are in the order they were appended.
This can be confusing for users–they go to select “Milli Vanilli” and look between “Madonna” and “Motley Crue” but can not find their favorite band there–they have to go to the end of the list to find their selection.
In the past, I have gone through the tedious process of exporting the domain to a table, sorting the table, removing the domain from the necessary field(s), deleting the domain, re-importing the table back in a new domain and finally re-applying the domain to the necessary field(s). Let’s just say I didn’t do this until someone asked a few times and I didn’t have anything more exciting–like a root canal–I could busy myself with.
But this new application contains more domains than any of other datasets so it was time to find a better solution. ESRI does have a Domain Sort Developer Sample. It, however, did not play nice with ArcGIS 10.
So I went ahead and update it from VB 6 to VB.Net/ArcObjects 10. I made an Add-In that can be installed by downloading the .esriaddin file and double-clicking on it. The source code is also available.
This will add an ArcCatalog Toolbar that can be added by going to Customize-Toolbars-Domain Sorter Toolbar.
This will add a toolbar with one button. The button enables whenever you select a geodatabase with at least one coded-value domain.
This brings up a Windows form that lets you sort any domain by either the code or description, ascending or descending. Once you hit “OK” it re-sorts your domain.
The only problem I have had is that only the owner of a domain is allowed to edit it on an SDE geodatabase.
But other than that, the button allows you to easily keep your domains sorted.