Yes they match substrings. So I put "box" in as a key and any car with the text "box" in the name will be classified as a box car. Also the order is important, so in the CARTYPES.CSV I go from very specific to increasingly general. That's because the first time the program comes to a match it will stop searching.
The purpose of the CARTYPES.CSV file is to help give Activity Master a chance to guess the car types, based on the name, in case the car type wasn't defined by the user. But it is only a starting point. When you use "ID UNKNOWN" or "SHOW ALL" you can set the car type for every car on your hard drive, REGARDLESS of the initial "guess" the program made based on CARTYPES.CSV. That data is saved in a file called rsdb.csv.
For Activity Generator the CARTYPE.CSV file is used only when creating templates, during the "Create Activity CSV File from an .act File" process. It isn't really used in Activity Generator when generating activities. The car types in that case are up to the designer of the template. For instance in some templates I've created I will call a covered hopper CVH and in other cases I might differentiate between the small 2-bay hoppers and call them maybe CMT (for cement) and CVH for the 3 bay and larger ones. Changing the text in CARTYPES.CSV won't have any effect on that. That's actually a good thing, it allows you to use ActivityMaster to change out the cars in a template without messing up the template design. So as long as you replace, say, boxcars with boxcars using ActivityMaster, AG will generate activities correctly regardless of whether the designer used the prototype code of "XM" or my code of "BX".
This is demonstrated/discussed in better detail in the Activity Master video tutorials on the Video Tutorials page of this site.
I understand what you're trying to do and I agree it's a good feature to add. I am planning to add this feature but that's coming in Activity Generator version 4 -- see the post in this forum discussing that.
You are very astute to notice that! I decided to handle this a different way though, I just name the cars differently depending on whether they are loads or empties. So for instance CL will be a loaded coal car and CLMT will be an empty coal car. So if a CL is sitting in a spur, the default "CARTYPEWANTED" will be CL so if designing a template you'd want to change that to "CLMT". I did this instead of just "load" and "empty" because sometimes its important, for certain industries, to note what KIND of load the car has -- this is especially the case with flat cars and gondolas in many of the templates Norm and I have created.
I like your thinking and appreciate the suggestions!
Best,
Steve
If you watch the Video Tutorial it won't be nearly as painful! I'm a lot better at showing how things work than trying to explain them.
Steve