How to Create a Customized ArcGIS Style

As a user and supporter of accessibility, often times I use a set of specific ColorBrewer color ramps when designing maps.

QGIS has supported ColorBrewer palettes for many years. For more information on QGIS’ ColorBrewer color ramps support, I recommend Anita Graser’s blog posts QGIS Meets ColorBrewer for the step-by-step process and More Color Ramps for QGIS for the updated palettes.

While it’s relatively “easy” to style maps with ArcMap there aren’t any out-of-the-box style solutions incorporating ColorBrewer, leaving the cartographer with two options:

  1. Customize your colors on-the-fly (good for one time use-cases), or
  2. Create a customized style file that can be used anytime.

At one time there was a ColorBrewer style file on the no-longer-supported Esri ArcScripts website, but even when the file was accessible the file didn’t meet my needs. Some colleagues found it hard to distinguish the lightest color against lighter-colored backgrounds/basemaps, or when displaying white or gray in a map.

To accommodate the request, I changed the number of data classes in ColorBrewer to one greater than the number I needed. For example: If four data classes were needed in a map, I changed the number of data classes to five and selected the four “darkest” color options:

Color Brewer data classes
Figure 1: ColorBrewer data classes

It wasn’t practical to continually set colors manually in ArcMap, especially when colleagues were doing the same work at their desks. So I needed to create a style file for myself and others. Besides I like getting my hands dirty and finding out the “how” behind why things work. 😛

In order to create my own style, I needed to implement the colors above into my own style. It wasn’t easy; documentation was lacking and outdated. Between software changes and the seemingly less customizations of ArcGIS software, I found myself stumbling through the process. I hope the process below helps other curious cartographers seeking to improve their organization’s workflow.

To create a customized style file I could re-use and share with colleagues I performed the following tasks:

In ArcMap, navigate to the ‘Customize’ menu, and click ‘Style Manager…’:

The customize menu
Figure 2: The Customize menu

Once the Style Manager dialog is opened, click the ‘Styles…’ button located in the right side of the dialog box. In the prompt select, ‘Create New Style…’.

A ‘Save As’ dialog will appear, ensure the file is being saved into: C:\Users\<your-username-here>\AppData\Roaming\ESRI\Desktop10.x\ArcMap, and the .style file type is maintained (e.g. Click ‘OK’ to create the new style.

On the left side of the Style Manager dialog box, a new folder will be created:

Screenshot of the ArcMap Style Manager
Figure 3: Screenshot of the ArcMap Style Manager

There are many ways to create color ramps, as there are four types of color ramps:

  • Random: a random alternating band of colors;
  • Multi-part: a continuous band of color ramp combinations;
  • Preset: an individually-specified color ramp; and
  • Algorithmic: a linear stretch between two defined colors.

To create a ColorBrewer color ramp, I used two types of ramps. First, a Multi-part color ramp to combine multiple color ramps together. Then, multiple Algorithmic color ramps to create an algorithm of colors between two defined color values.

There are alternative methodologies to create color ramps, this is the method I preferred. Explore other possibilities while designing your own.

To create the color ramps, navigate to the ‘Color Ramps’ folder > ‘New’ > ‘Multi-part Color Ramp…’:

How to add a multi-part color ramp.
Figure 4:  How to add a multi-part color ramp.

Next, in the Color Ramp dialog, select the ‘Add’ button > ‘Algorithmic Color Ramp’:

How to create an Algorithmic color ramp
Figure 5: How to create an Algorithmic color ramp

In the Algorithmic Color Ramp select ‘Properties’:

How to alter the Algorithmic color ramp properties
Figure 6: How to alter the Algorithmic color ramp properties

To change the color, select the ‘More Colors…’ button to select a new pre-defined color:

The Style manager's edit color ramp dialog
Figure 7: The Style manager’s edit color ramp dialog

In the Color Selector dialog, switch to “RGB” or “CMYK”, as ColorBrewer lists both.

Change Color 1 to the lightest color and Color 2 to the second lightest color desired. For example: Referencing Figure 1 above, to create the same color scheme, assign Color 1 as (R:178, G:226, B:226) and Color 2 as (R:102, G:194, B:164).

Changing the color selector to RGB
Figure 8: Changing the color selector to RGB

Continue this process using the second lightest color, or Color 2 above, in the “Color 1” value (e.g. R:102, G:194, B:164) and adding in the next darkest value into Color 2 (e.g. R:44, G:162, B:95). Continue until all of the desired colors have been added.

Once completed there will be one less algorithmic color ramp than the number of data classes. For example: With four defined data classes, there will be three algorithmic color ramps.

An example of a customized color ramp using Color Brewer's data classes
Figure 9: An example of a customized color ramp using ColorBrewer’s data classes.

Continue to add in additional color ramps, and name them along the way (e.g. ColorBrewer Green). Color ramp naming conventions are important as an ArcGIS user can change the display of the color ramps from graphic to textual in the Layer properties symbology by right-clicking the color ramp and unchecking ‘Graphic View’.

Once all of the Color Ramps desired have been added, the style file created can be shared with others by copying the style file to the C:\Users\<your-colleagues-username>\AppData\Roaming\ESRI\Desktop10.x\ArcMap folder.

Hooray! 😀



I received an e-mail with some excellent questions geared towards students and young professionals. With permission from the recipient, I am posting the content of our e-mail exchange, edited for bloggage purposes, but 99% intact.

By no means do I have all of the answers, but I wanted to share our conversation with the world as I think they are some of the best questions students and young professionals should be asking both of others, and themselves. If you have any additional comments and/or suggestions, please post them in the comments section below! 🙂

Initial E-mail:

Hi Kitty,

My name is ——. I’ve run across your blog a few times and certainly have enjoyed it and learned a few things along the way.  I’m a GIS student of sorts.

I’m working on getting into GIS in a full time capacity sometime soon. As there isn’t a big GIS community in my small town, I’m starting to get to know GIS people in —— and nearby.

Hoping to throw a couple questions at you.

  1. Broadly speaking, what level of experience do entry/technician level GIS people need to be competitive?
  1. What have you seen that separates top young professionals from the crowd?
  1. Where is the fastest change or biggest growth within GIS that you’re watching?


My Response:

Hi ——,

Thank you for your kind words in regards to my blog! It’s great to hear your story, learn of your interest in the geospatial community, and hear that you are pursuing work in the geospatial field! 🙂 I truly believe we can change the world with a map and history doesn’t lie; it’s been done countless times over the course of human history.

From your initial e-mail I wanted to commend you, you are asking the right questions and are on the right track in getting some key contacts locally and in ——.

I tried to answer your three questions, listed below, based on my experience but there are many pathways you can take in your journey. So take my answers with a grain of salt but hopefully they help lead you along the way. Also, don’t hesitate to contact me if you have any other lingering questions or something comes up in the future. I truly believe we all work together, no matter our geography as we’re a cohesive team around the globe trying to solve the world’s problems together.

Okay, enough of my babble, let’s get to your questions!

Q1. Broadly speaking, what level of experience do entry/technician level GIS people need to be competitive?

This is a great question, and one I have heard from many others trying to get into the geospatial community. I, too, had the same question when trying to figure out what recruiters were looking for. I’m going to answer it in a roundabout way, but hopefully it makes sense in the grand scheme of things.

First and foremost, set yourself apart from others. Being unique gets you a long way in the geospatial community. For example, if you have interest in programming then take a class in Python, another in JavaScript, another in C#, and so on. Or, if you have interest in natural resources field, learn the natural and societal impacts as there aren’t many areas of the world left untouched.

In my experience, recruiters appreciate applicants that are worldly and aren’t focused on one particular area but can span across many different areas and/or disciplines and apply their work in a similar manner. Geospatial professionals use tools from a toolbox to do their work, so being a “one-trick pony” only gets you so far.

As far as the basics go, try and dabble with different technologies and tools. Use both open source (QGIS, GDAL, MapServer, etc.) and Esri technologies. Neither of the technologies are the catch-all answer and both are used no matter the environment you are working in. Having knowledge, even at a basic level of many different platforms and coding languages will also build up your résumé.

If you need more on-the-job professional experience, I recommend contacting various employers whose work interests you to see if there are any unpaid or volunteer opportunities available. Sometimes funding is an issue with an organization but work load can be high and some organizations will welcome you with open arms. Plus, employers appreciate your initiative and are more inclined to make an opportunity available to you. Sometimes these roles even lead to full time work in the long run.

Back to your question as to the level needed for an entry-level position: I don’t think any level is required other than: being yourself, taking the initiative, focusing on multiple areas (even if they seem unrelated to your ultimate goal), and having a willingness to learn.

Q2. What have you seen that separates top young professionals from the crowd?

This is a really great question, and one that I was trying to figure out when I was first getting into the industry and in creating my own path along the way. There’s no ‘right’ answer to this question but based on my experience, I have a “top 5” list below helped propel me down a path leading me to where I am today:

#1. Network, Network, and Network some more

Use social media to get to know others, especially others in your area, or area you plan to work in professionally. Send an e-mail to someone to say ‘hello’ and find out the work they are doing. Learn about the work they are doing. Do you have interest in doing their work now, or in the future? If so, find out how they are doing it and find ways to build up your portfolio/résumé in this way.

Plus, getting your name out there helps you immensely when you are applying for positions. This fact used to annoy me as a student and young professional but I see even myself doing it now. The geospatial community is small, in particular in less populated areas but even throughout the nation, and worldwide. Get to know these people; it’ll take you far (plus, they are pretty much amazing). 🙂

#2. Get an Advanced Degree and/or Professional Certificate(s)

Thanks to the latest recession, many young professionals couldn’t land a job after receiving their Bachelor degree (myself included). So we opted for a longer time in school to focus on building up our résumé. Great for us, not so much on the student loan debt, but hard on students and other young professionals today. Even now, with the economy gaining strength, I can’t name one student that hasn’t pursued an advanced degree. Plus, it’s almost impossible to move up in the ranks with a Bachelor degree these days.

However, school isn’t for everybody. It’s costly, both in debt and potential lost wages, and requires a lot of time. In fact, some that try and go back never end up finishing what they started and end up with even more debt. So another option is to focus on professional certificates, whether through a school program or professional organization. Some of these certificates I pursued early on in my career included: GISP (GISCI), HAZUS-MH (FEMA), and Project Management (University of Minnesota). They still have a cost to them, but they are far less of time commitment and financial burden.

Both options may have a high initial cost and time commitment to them, but in my experience have the greatest return on investment. Many programs and certifications require a lot of additional money and work for a reason. This one pays off right away and you’ll likely never see the return diminish in this category. I received my advanced degree over six years ago and there hasn’t been a month where I haven’t reaped the benefits.

#3. Join ‘Amateur’ and Professional Organizations

There are SO many incredible and amazing organizations available now with the Meetup group boom. When I was getting into the industry, there weren’t a lot of groups but I joined as many as I could to see what other professionals were up to. I learned a great deal in a short amount of time and it helped build up relationships I still have today.

Check out the Meetup site to see what is happening in your neck of the woods. If there isn’t a local Maptime group in your area already, get one started. Even if you are in a small community, you would be surprised how many people have interest in cartography and maps even if they don’t plan on getting involved in the geospatial field professionally.

For more ‘formal’ organizations the following are some good starting points: the Association of American Geographer’s (AAG), the American Planning Association (APA), the North American Cartographic Information Society (NACIS), and the Urban and Regional Information Systems Association (URISA), and many others!

#4. Learn Something New Every Day

  • Attend Conferences: Using your connections from professional organizations, attend professional conferences. Attend presentations, give presentations, and make a map for a poster competition/map gallery (this also helps with the networking piece, too). I am also very biased in this regard as I have been a student assistant for two conferences: the Esri UC and the National American Planning Association conferences. I was able to connect with other students and young professionals, meet with conference organizers, see behind-the-scenes, and learn a lot. If this is an option for you along your journey, I highly recommend it. In many instances student assistants have almost no out-of-pocket expense and the return on investment is out of this world. To this day, seven years after my experiences, I have some of the best relationships with colleagues across the globe I have ever acquired in my life.
  • Take an Online Course: Recently has been my go-to for training. It’s relatively cheap at $300/year and includes training for: developers, designers, the web, photography, business, education, animation, music, and much more! There are many other sites that are beneficial, many of which have no cost. Find a few that you like and stick with them.
  • Follow a Conference on Twitter (e.g. #esriuc, #foss4g, #sotmus, etc.): When you are unable to attend a conference (there are a lot) many others will tweet some great tidbits of information via Twitter. Live vicariously through them, you’ll learn a lot.
  • Attend, Participate, and Lead Meetup events: I was hesitant to get involved in Meetups, but you’ll meet some amazing people from all walks of life with a high interest in topics. Don’t be afraid to volunteer to lead a talk or discussion, even if you have limited knowledge in the subject matter. Use the experience as a way to learn more about a topic you never knew about and to pass on your new knowledge to others. You won’t regret it.

#5. Get Involved

Join a committee whether it be local, regional, state, national, or internationally. This is another way to network, get engaged, help others in the community, and learn a lot. As a young professional you feel like there isn’t much you can bring to the table, at least that was my thinking early on. It wasn’t until after a colleague told me I should accept a nomination into our local GIS group that I believed I could make a difference. It took a year to get situated but once we got going, our group was able to get involved and make a difference for others in the geospatial community. From a networking perspective, it was a fantastic way to meet others around our local geospatial community and work together to better our community.

Q3. Where is the fastest change or biggest growth within GIS that you’re watching?

From what I have seen over the last few years the biggest growth I have seen is in UI/UX (user experience and design). Sometimes UI/UX go hand-in-hand, depending upon an organization’s size or demand, and sometimes they are separated.

Everything from cartography to web design has a particular focus on how a user views, interprets, and analyzes the information. Of course, there are so many ways to interpret a user’s experience and how to design something to better their experience. Unfortunately this makes it difficult to point any resources towards building up a skillset in UI/UX other than watching what others are doing and understand WHY they are doing it in such a manner. But there are a few education programs that focus on UI/UX. The two educational programs I believe that provide the best focus on this are Penn State (they also have an online curriculum) and the University of Wisconsin.

Other recent changes and growth have been in the development community, but this is where my bias comes in since I develop for a living. IMHO, there are many people that can make maps, many others that can develop, but not many that do both. I can name a handful of people, myself included, that have switched over from geospatial analysis to development. If you have interest in the development realm, I recommend using some key learning resources (, Codecademy,, etc.) and getting an account on GitHub.

I hope I answered your questions, or am steering you in the right direction but if I missed anything or any additional questions have sparked, don’t hesitate to ask. 🙂

Warm Regards,

Code on

The most important takeaway I have learned, in my short time, in a development role is this: Code now; ask questions later.

For those that are now even more confused then you were a few seconds ago, know this: I, too ask a lot of questions. But coding is the act of doing, you will learn much more if you act by doing one line of code at a time (after all, practice makes perfect).

Sure you will encounter roadblocks, you will want to give up, and maybe even want to throw your computer out a window but the struggle makes the journey.

A good friend of mine recently traveled to Peru and hiked the Camina Inca (Inca Trail) to the beautiful Machu Picchu. Most of the stories from her trip were about day two of the hike aka the “day from hell”, as she described it. Day two included a nearly four mile uphill hike that included an almost 4,000 foot elevation change (yikes).


The reason I bring this up is while those numbers seem flat out insane, the ultimate goal of day two en route to Machu Picchu is the same as the journey of coding. Never stop; keep one foot in front of the other and one day you will turn around and see you have climbed a mountain. When you arrive at the top, you will see the journey that lead you there and the one that lies before you. Plus, you’ll have some amazing stories to tell!

But as with everything else, good things happen to those who are willing to learn at their own pace. Learning how to code takes time, and no journey is the same, so try to be patient along the way. Just because it seems like you are sitting at a computer struggling doesn’t mean someone else with the same skillset isn’t doing the very same thing you are.

Most importantly, remember this: The master has failed more times than the beginner has tried.

The Little Things

Coding is hard. Seriously. The last few work days have been extremely hard for me as I’ve been trying to learn a new library and struggling; heck failing. Yes, failing.

It felt similar to this:


Learning and innovating go hand-in-hand with failures every now and then, right? Of course. But how do you tell your colleague(s), stakeholder(s), and/or customer(s) that you failed? It’s incredibly difficult.

Two little things came into my life this morning that made everything better, and I hope they will have as much of an impact on someone else as they did on me:

  1. Even the best of the best feel this way sometimes.

Don’t overestimate the world and underestimate yourself; you are better than you think.

YOU have gifts to share with the world.
YOU are not alone.
YOU are not flawed.
YOU are human.
NEVER, ever give up.

  1. Start using a four-letter word.

When you complete any task, no matter how small, say the word: Done. Break down those large “beast-like” tasks into smaller ones and either say or write down the word “Done” when you complete it.

Not only are we creating an emotional reaction by using the word, we are also releasing serotonin, our body’s ‘feel good’ chemical, allowing us to feel calm and satisfied. Seriously, do this, and do it often.


No one Knows What They’re Doing

One of the most common talking points I have with other young professionals is in regards to what is expected of us as many of us have received very little training from our employers. Yet we are expected to wear multiple hats and get everything done, with deadlines of yesterday, while keeping up with our colleagues who have years of experience and training already under their belts.

This growing trend has been a frustration for me and the many other young professionals who just want to make the world better than it is. Plus, it is incredibly terrifying to be thrown a handful of projects with no idea on how to conquer them before their deadlines.

To me the feeling is like being thrown overboard in the middle of the ocean with a lifesaver and asked to get to shore with only the ability to swim. Sure, you’ve got a great foundation and a tool that can prepare you for the challenges ahead but: How can you find the shoreline? What resources will you have and/or find along the way? What obstacles will you encounter? How will you survive?

In my opinion, April from Parks and Recreation (video) said it best to her partner-in-crime, Andy:

“I’m going to tell you a secret about everyone else’s job: No one knows what they’re doing. Deep down everyone is just faking it until they figure it out. And you will, too, because you are awesome and everyone else sucks.”


I can’t think of anyone that hasn’t had a moment similar to Andy’s at least once in their career. We are all just fish swimming in an ocean navigating through rough waters, tidal waves, and at times, even hurricanes. These moments and hardships help define and guide us throughout our careers.

But, while I am still in the beginning stage of my career I am doubtful this feeling will ever go away; even if we do receive adequate training and support from our colleagues. There is no way to know everything as there will always be something new to learn and even a new, seemingly impossible project on the horizon.

So let’s navigate some rough waters together and make the world a better place. What say you?

How do I do the thing?

A lot of questions and doubt flooded my mind when I accepted my current position two years ago. Coding was something that scared me despite incorporating it into various aspects of my life since I was young. Plus, it has always been one of those arenas that have scared off many geospatial professionals because of the learning curve associated with it. But, why?

Is it the code we inherit? The fear of not living up to a predecessor? The fear of failing? All of the above?

It doesn’t matter if you have never touched code or if you code daily; there is the constant fear of being able to “do the thing” and exceed the expectations handed to you. Nothing is impossible but we have deadlines to meet and sometimes despite what management, a user, or a stakeholder ‘needs’ there isn’t an easy fix. So how do you keep the happy medium between what you can, and are capable of, and what is needed?


  1. Take a breath, you got this! 🙂
  1. Use your resources: Use fellow colleagues (in the office and/or social media), StackOverflow, and library documentation (e.g. ArcGIS for Developers, jQuery API, Leaflet API, Mapbox API, etc.)
    1. Be ready to think outside the box. Just because someone says something isn’t possible, doesn’t make it true. There is always a way. You might have to really state your case, especially if you are going against the grain, but start by thinking in new, innovative ways.


      1. Determine your time frame: If there is something you know will have a greater return on investment or is needed, try to incorporate it but communicate all of your concerns or potential roadblocks with your stakeholders before proceeding.
      1. Next, break down the problem as much as you can. From my previous post #5: Break down e-v-e-r-y-t-h-i-n-g):

Coding is awesome in that we can fix small pieces to make an entire application better. For example, if our problem is that we need to buy more milk, let’s break it down:

Q1: How much milk do we need? A1: We need a gallon of milk.
Q2: How much money do we need to buy a gallon of milk? A2: We need, at most, $3.00 on either a credit card or in cash.
Q3: How do we purchase the gallon of milk? A3: We will walk to the convenience store down the street.
Q4: What if the convenience store doesn’t have a gallon of milk to purchase? A4: We can walk an additional five blocks to a larger convenience store.

Some of these questions could be broken down even further (ie: What kind of milk?) but you get the point. Breakdown each problem into individual components, for both your sanity and your code’s sake. To get going on this respect, start by writing out some of the processes you plan to take. Eventually it’ll become second nature. Trust me on this one.

  1. Set many small, realistic milestones based on these steps and determine what you need in order to accomplish them. It is important to set three or four small milestones instead of one large one to help you achieve your goals.
  1. Reward yourself when you hit those milestones by treating yourself (video).
  1. Lastly, but most importantly, don’t dwell on the milestones you don’t meet. We’re human – we need breaks (vacations, sick time and lunches) and some things simply aren’t feasible in the time frame we’ve been given. Keep note of these moments for the future but don’t let them overtake your thoughts.

A Developer’s Toolbox

“No home is complete without a proper toolbox. Here’s April and Andy’s: A hammer, a half eaten pretzel, a baseball card, some cartridge that says Sonic and Hedgehog, a scissor half, a flashlight filled with jellybeans.” – Ron Swanson, Parks & Recreation (video)


While many of us laugh at April and Andy’s toolbox contents, the statement Ron makes is a valid one. We all need, in some capacity, a toolbox to properly equip us. Developers and non-developers alike, we need a specific set of tools to get our jobs done.

But just because we have a tool in our own ‘toolbox’ doesn’t mean someone else will use it in the same way, or use it at all. For example:

  • Do we all need the same tools? No
  • Do we all use the same tools? No
  • Do we all use the same tool in the same way? No
  • Will we use the same tools throughout our careers? More than likely, no.

Another element to keep in mind is that sometimes we need more than one tool to solve a problem. In fact some problems require the use of multiple tools together to solve a routine task. Check out the crow intelligence video below (an oldie but a goody):

So listing the name of tools I use is somewhat misleading. Will my list of tools help you? They could, or they could have the opposite effect. Also, tools can become obsolete over time – look at the Google Earth API.

But with these things in mind, below is a short list of some of the tools found in my toolbox, organized by price [Note: I use Windows as my OS both personally and professionally]:

  1. Notepad ++ (Free): Think Notepad on steroids; it’s simply amazing. A source code editor that supports a lot of languages (I haven’t found one that isn’t supported yet). Plus the creators compare it to ‘free speech’ and ‘free beer’ on their website; clearly you can’t go wrong with this product.
  1. OSGeo4W (Free): The Windows package of: GDAL/OGR, QGIS, GRASS, MapServer, OpenEV, uDig and others. From what I have used and seen I am a huge fan and it’s made my life so much easier. Some of the tools you can tap into with GDAL are incredibly powerful and can produce some amazing things, sometimes superior to Arc- products, plus it’s free. I am not sure about other OS’ and I am pretty new to the scene but if you ask The Googles, you should be able to get what you need.
  1. Eclipse IDE (Free): While I complain a lot about Eclipse, it’s a pretty cool tool. You can customize the environment in any way you like, including a whole suite of amazing plug-ins. However, a forewarning for beginners: it’s not the easiest tool to setup and anytime Java updates you may encounter some issues. But if you are willing to weather the storm, you will enjoy this product as a developer.
  1. Git (Free/$): When a colleague first showed me Github I was extremely weary of it but it’s been extremely useful to me both personally and professionally. I have been able to learn new tidbits and tricks and improve my overall knowledge all while meeting others in the development community. Git tools, specifically Github for Windows (Free), provide a way to sync your work with the Github community. Most of the Git tools are free but a few do have a small cost.
  1. GIMP (Free): An amazing raster graphics editor. GIMP was the first open source tool I ever used so I am somewhat biased. Overall, I find it much more usable than Photoshop and hey, it’s free.
  1. Adobe Illustrator CC ($$): An amazing vector graphics editor, especially for cartography and graphic design. I have tried to use the free and open source software, Inkscape but in my opinion, it simply isn’t the same as the Illustrator product. While I am very resistant to fork money over for something that has a free alternative, this is one of the instances I recommend going with the paid version.
  1. Adobe Acrobat Pro ($$): Love, love, love this tool! Whether it be for combining multiple documents, creating professional forms, and/or scanning documents and redacting private information (for reference). I do recommend getting this when you purchase a new PC, it’s usually a much better deal than the monthly pricing Adobe lists on their website.
  1. Esri ArcGIS Advanced ($$$): I don’t want to start an ArcGIS vs. QGIS debate and to be honest, I don’t have much experience with QGIS but since this is what I know, I am adding it to my list. This goes back to one of my comments above; as my career progresses this tool may or may not be on it but for now it’s on the list (please don’t send me hate mail). The package includes: ArcMap, ArcToolbox, and ArcCatalog among other items. Be ready to sell your first born on this product; it is quite spendy.

Monetary Guide:

  • $ Broke and/or young professional approved. 🙂
  • $$ A larger investment but worth it if you can afford it.
  • $$$ You better check (and re-check) your bank account before making this kind of purchase.

So tell me, what tools do you use?