Am I understanding Symbols correctly?
I purchased CC3 a week ago, have been puttering with it since then just to get a feel for things, and now am trying to understand the workings of the program more precisely, especially how to set up default styles, templates, etc. in order to make mapping faster and more consistent. I have a couple of "how to" questions about symbols, but I'd first like to confirm that I'm understanding CC3's internal logic correctly. AFAICT, symbols work as follows, building from the lowest layer up...
- PNG's - At the bottom are the individual PNG files for each symbol. Not much to say about that. I notice, however, that the CC2 symbols have no PNG's. Where are those definitions stored?
- FSC's - Next up are the FastCad Symbol Catalogs. Besides being a primitive logical grouping of the PNG's, these also define symbol attributes such as insertion points. These files live in subdirectories of the Symbols folder, with further subdirectories containing the actual, raw PNG's.
- Catalog Settings (CS's) - I'm not sure this is really the proper name for this layer, and CC appears to inconsistent in its labelling. But it's basically another layer of cataloging objects. These are the "tags" like "CC3 Structures" that are actually visible in the UI. Each one should be tied to a single FSC, but CC does not enforce this - you can have an empty CS that shows up in the Symbol UI but doesn't actually contain any symbols. You could also have two different CS's that point to the same FSC. These objects also define higher-level properties such as the default insertion layer, color, etc. This is what you're modifying in the lower right when you left-click the symbol button and choose the advanced view. I'm curious about where these objects are stored on disk, as they don't appear to be anywhere in the filesystem. Are these settings dumped to the registry or am I missing some file somewhere?
- Symbol Styles - The highest level logical grouping like "CC3 Symbol Style" or "Line Symbol Style", which you choose from the top of the context menu you reach by right-clicking the symbol button. Technically speaking, these aren't really internal structures of the program at all - they're merely subsets of the Catalog Settings as defined by the Master Filter Settings. (Well, sort of... you can have more than 4 Master Symbol settings, but the UI doesn't actually change to accomodate that AFAICT). So when you click the Symbol Button and choose "Mountains", you're really choosing "CC3 Mountains" - it's just that the "CC3 Symbol Style" is automatically looking for Catalog Settings with "CC3" in front and not showing that prefix in the UI.
As far as I've been able to determine, that's basically how it works. Like I said, I have some other clarifying questions, but I'd appreciate it if the tech experts here can correct or expand on what I outlined above. The documentation for the Symbol system itself (as opposed to how to use it) seems extremely weak compared to the generally helpful docs on other topics.
Comments
1) The old style non-png symbols are pure vector constructions. Their definitions are stored in the symbol catalogs (*.fsc). If you insert them into a map, this defintion part is copied to the Symbol Definition Sheet/Layer.
2) The difference between png and vector symbols is that the latter are stored completly in the symbol catalog while the png symbols additionally need the png file as a kind of bitmap fill.
Regarding points 3) and 4) I am not sure how to explain these things sufficiently (being neither a real expert nor a native speaker), but someone else will surely help out soon.
Basically, how I look at it is that you have a Symbol Catalogs (.fsc files). These contain zero or more symbol definitions. As part of that definition, if it is a raster symbol, it has a pointer to the actual .png fil on disk. If it is a traditional vector symbol, the symbol is entirely contained in the fsc file.
Then, in CC3, you can define Symbol Catalog Settings. Each of these settings points to exactly one symbol catalog file, and determines properties for this catalog, such as which Layer to use (Sheet on the other hand is stored in the fsc file instead, for each individual symbol)
Then, you have the Master Filter and Catalog filter. The master filter determines which symbol style (filled, handdrawn, etc) you wish to use. The catalog filter determines what group of symbols you wish to use (buildings, vegetation, mountains). These filters basically just matches part of the name you give to each Symbol Catalog Setting.
If you click on a button in the UI, and no symbols shows up, it is because there are no defined Symbol Catalog Setting that matches the current master and catalog filters.
(And similar explanation by Monsen)
OK, cool. That's pretty much what I figured - vectors are cheap, so they're stored right in the FSC. This brings up one of my "how to" questions. Let's say I want to manipulate existing Catalog Settings in order to create a new one. For example, I notice that there is a "CC2 Filled All" Catalog Setting, but no FSC for it to point to. (I can't help but note that this seems extremely sloppy to have in a shipped product, should a dev be reading. That kind of omission makes the whole symbol system much harder to understand. Anyway...) So say I want to make a new FSC containing all the CC2 Filled symbols, just so that I have somewhere to point "CC2 Filled All" towards. I would expect that I'd do this kind of thing in Symbol Manager by starting up a fresh drawing with no references, importing the individual FSC's, and then saving the bunch as a new catalog. However, that's apparently not correct because clicking Import let's me choose FSC's, but I don't actually see them show up in the display. Is the only way to build/edit catalog to literally pull each and every symbol onto the map in order to get a reference? That seems very awkward.
That leads to one other related question. Where are the "CC2 Monochrome *" SCS's supposed to point? Mine are entirely empty because they all point to #/Symbols/Maps/Monochrome/foo, which doesn't exist. The only folders I have under Maps are CC3, Filled, Line (which are clearly the other three styles) and "Other", which appears to be a hodgepodge of stuff that should probably be catalogued elsewhere. I'm guessing that the Mono symbols should just point to the varicolor versions of the Line symbols?
Well, not exactly. If there's no SCS for that UI button at all, then you get the Select Catalog dialog. If the SCS is defined but doesn't actually point to an FSC (like it should!) then you simply get an empty symbol bar. Either way, this is another example of how dreadfully confusing this aspect of the AI is - ideally, the button should just grey out if it doesn't have a valid target. It certainly shouldn't pop up another dialog asking you to feed it more information. That implies that the symbols are there somewhere. If, for example, I'm in the CC2 Filled style and select Economy from the context menu, I shouldn't get a dialog, because there simply are no Filled Economy symbols to be found anywhere. I spent a lot of time screwing with this before I realized that I wasn't actually doing anything wrong.Anyway, sorry for coming off grumpy. I'm actually very impressed with the program in nearly all other respects. It's very slick, and I can see that it will let you churn out maps very quickly once you have some default styles and templates that you're happy with. But the UI for the symbol system is just awful. I gathered from reading other posts and seeing other people's maps that the majority of people were using entirely premade symbol sets, and I now completely understand why.
Insert
->File
to insert an existing symbol catalog (fcs file) into the current drawing. This will import all the symbols from that catalog (They won't appear in the drawing, but the definitions will be imported, so if you go to the symbol manager afterwards, or switch the symbol catalog window to show symbols already in the map, instead of a symbol catalog, you will see them.The main reason for this behaviour of the buttons is the way they are configured (A heritage from FastCad, the program CC3 is based on). The menus are configered through static .mnu files, giving you a very powerful way to customize the interface (especially if you learn a bit about macros in CC3), but this does leave the buttons less dynamic. There is no easy way to get them to react to events and be greyed out if there is no symbol catalog available.
To be quite honest, I had never thought of doing it that way before (Mostly because I haven't had any need of combining symbol catalogs), but when you asked for a simple way, I started thinking
There is actually a lot of things you can do with the insert file command, like importing fill styles.
BTW, if you go the other route, that is opening the symbol catalog and inserting the symbols into your map, you don't actually have to place them. Just clicking on a symbol in the catalog is enough for the definition to be copied to the map file. So if you wish to just import a few symbols from a larger catalog, this is a good way.
Being a UNIX nerd, I am sure you will quickly learn to appreciate one of CC3's most powerful features, it's command line. Personally, I find it easier for most tasks to just type the command instead of finding the correct button.