I'm trying to categorize symbology by a particular portion of a column (the left 3 characters). This layer is based on a SQL view that I don't have access to modify -- and I don't want to create a copy because it needs to be updated daily. (So I suspect creating a calculated field isn't possible)

I want it to look something like this:
ID     Name      Category
1      ABC123    ABC
2      ABC828    ABC
3      DEF381    DEF

Then color by the category column (which doesn't exist currently). I know I could manually change the symbol and description on each item, but there are hundreds and more show up randomly. The first 3 letters should be consistent though.

Any way to accomplish this without database access, while retaining the ability for the layer to update dynamically as the data changes in the source?

2 Answers 2


Have you looked into creating a custom renderer, or extending an existing one ? http://edndoc.esri.com/arcobjects/9.2/NET/9c7fa412-f6e7-4ef2-b79b-af0d762e65a8.htm

I haven't done this, but I'd probably start by trying to derive a new class from an existing renderer and just overload IFeatureRenderer.SymbolByFeature by calling the base.SymbolByFeature then changing the color.

Your custom SymbolByFeature could parse the name field value into the text and number parts then assign the color using the text part.

  • Wow, I have no idea what any of that means. But I'm going to follow the link, and get a dictionary -- and see if I can figure it out :) Thanks for the advice! Commented Sep 23, 2016 at 13:06

Create new field and use this formula in attribute field calculator.

Left(“abcdefg”, 3) = “abc”

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.