Attribute Assistant: Difference between revisions
Brian Wilson (talk | contribs) |
Brian Wilson (talk | contribs) |
||
Line 57: | Line 57: | ||
It has to be on one line since there is no support for anything like a code block. | It has to be on one line since there is no support for anything like a code block. | ||
So in this case I had to call "Split" 3 times with the same arguments. | So in this case I had to call "Split" 3 times with the same arguments. Normally I'd say that's awful and it would be two lines, but I don't see any way to do that in Attribute Assistant. In ArcMap I'd use a code block. | ||
s = Split([MapNumber],".") | |||
s(0)&s(1)&" "&s(2)&" "& [Taxlot] |
Revision as of 15:42, 3 May 2018
Attribute Assistant is an add-in for ESRI ArcMap written in C#
The version I am using was release January 2018
The good parts
- They are still releasing new versions (so far).
- The range of built in functions is pretty good.
- The documentation is so-so.
The horrible part
Expressions have to be written in VBScript, which is like stepping back in time about 15 years for me. I stopped using it everywhere when ESRI started supporting Python and (until today) I never looked back.
The stupid part
The word is that ESRI now wants me to learn and use "Arcade" which is not Python and not Javascript. I am delaying in the hopes that it goes away before I have to learn it.
Tricks and pratfalls
In case you have not looked at it yet, the way it works is that you put a table in your MXD called DynamicValue and then populate it with rules. The add-in fires the rules when the events are tripped.
A trick: populate the AutoWho and AutoDate attributes
Table Name | Field Name | Value Method | Value Info | On Create | On Change (Attribute) | On Change (Geometry) | Manual Only | Rule Weight | Comments |
---|---|---|---|---|---|---|---|---|---|
* | AutoWho | CURRENT_USER | U | 1 | 1 | 1 | 0 | <Null> | |
* | AutoDate | TIMESTAMP | DATE | 1 | 1 | 1 | 0 | <Null> |
AutoWho: Putting U in the Value Info column makes it use only the user name, otherwise it puts DOMAIN\USERNAME which is ugly.
AutoDate: Putting DATE in the Value Info column makes it use only the date, no time stamp, which is what I want.
Pratfall category
Table Name | Field Name | Value Method | Value Info | On Create | On Change (Attribute) | On Change (Geometry) | Manual Only | Rule Weight | Comments |
---|---|---|---|---|---|---|---|---|---|
taxlot | MapTaxlot | EXPRESSION | Split( [MapNumber],".")(0)&Split( [MapNumber],".")(1)&" "&Split( [MapNumber],".")(2)&" "& [Taxlot] | 1 | 1 | 1 | 0 | <Null> |
You have to cram your VBScript into the Value Info field, no matter how long or complex. It has to be on one line since there is no support for anything like a code block.
So in this case I had to call "Split" 3 times with the same arguments. Normally I'd say that's awful and it would be two lines, but I don't see any way to do that in Attribute Assistant. In ArcMap I'd use a code block.
s = Split([MapNumber],".") s(0)&s(1)&" "&s(2)&" "& [Taxlot]