DRYCAD Suite | User Documentation | v1.0.0
Table of Contents
- Overview
- Getting Started
- Reading the Result
- Configuration: settings.ini
- Examples
- Troubleshooting
- Version History
1. Overview
Working out which letter is next in a drawing full of datums and section or detail views means scanning every sheet by eye and keeping a mental tally, easy to get wrong the moment a drawing grows past a handful of views. DRY0048 does that scan for you: it reads every datum and every section or detail view already present, and reports the first letter that is still free for each, in seconds, regardless of how large or cluttered the drawing is.
What it does:
- Scans the active drawing document for existing section views, detail views, and datum references
- Reports the first available letter for views and for datums independently
- Optionally keeps section view identifiers and detail view identifiers on separate letter tracks
- Optionally repeats the check limited to the current sheet, alongside the whole-document result, on multi-sheet drawings
- Skips letters that are easy to confuse or that your drafting standard avoids, based on your configuration
Supported CAD platforms: CATIA V5
Workspace requirement: An active Drawing document must be open in CATIA.
This tool has no user interface, it runs a single check and reports the result immediately, then closes.
2. Getting Started
Prerequisites
- CATIA V5 must be running
- You must be logged into the DRYCAD Suite
- An active Drawing document must be open in CATIA
Running the Tool
DRY0048 is launched from the DRYCAD Suite CommandBar inside CATIA V5. Click the corresponding button to run the check.
Unlike other Suite tools, DRY0048 does not open a panel. It performs its scan and immediately shows the result in a message box (see Section 3); once you dismiss the message box, the tool closes.
The tool checks the following conditions at launch, and will show an error and close if any fail, without performing the scan:
- A valid user session is found, if not: “User not found. Please login and try again.”
- CATIA V5 is running and accessible, if not: “CATIA is not open. Please open CATIA and try again.”
- The active document is a Drawing, if not, an “Invalid Workspace” error is shown and the tool closes without scanning
A background watchdog also checks every 2 seconds whether CATIA is still running while the tool is active; if CATIA closes mid-check, the tool exits silently without showing a result.
3. Reading the Result
Once the scan completes, DRY0048 shows a single message box with the results, there is nothing to configure in the result itself, only in settings.ini beforehand (see Section 4).
3.1 Drawing-Wide Result
The message box always opens with the result for the entire drawing document, across every sheet:
Within the current Drawing Document, these are the first available letters:
• First Available View Identifier is | C |
• First Available Datum Identifier is | B |
When DIFFERENT_NAMING_FOR_SECTIONS_AND_DETAILS is enabled, the view line above is replaced by two separate lines, one for section views, one for detail views, each computed against its own independent letter pool:
Within the current Drawing Document, these are the first available letters:
• First Available Section View Identifier is | C |
• First Available Detail View Identifier is | B |
• First Available Datum Identifier is | D |
3.2 Current-Sheet Result
If DISPLAY_INFO_IN_ACTIVE_SHEET is enabled and the drawing contains more than one sheet, a second block is appended below the drawing-wide result, repeating the same check limited to the active sheet only:
Within the current Drawing Sheet, these are the first available letters:
• First Available View Identifier is | E |
• First Available Datum Identifier is | C |
On a single-sheet drawing this second block never appears, even if DISPLAY_INFO_IN_ACTIVE_SHEET is enabled, the drawing-wide result and the sheet result would be identical, so the tool doesn’t repeat itself.
3.3 How the First Available Letter Is Determined
The letter pool always starts as the full alphabet, then has any letters listed in LETTERS_TO_SKIP_IN_VIEWS (for views) or LETTERS_TO_SKIP_IN_DATUMS (for datums) removed before anything else happens. Everything below operates on that filtered pool, never the raw alphabet.
For views, only sheets with at least three views are inspected, and only the third view onward, this skips the two background/frame views every CATIA sheet starts with. Each remaining view is classified as a Section, Detail, or Generic view from its CATIA view type; Generic views are ignored entirely, since they don’t carry a lettered identifier the way sections and details do. For datums, the tool searches each sheet’s DrwDatumFeature objects directly and reads the label text of each one found; sheets with fewer than three views are skipped here too, since a sheet that sparse won’t contain meaningful datum references.
Every label collected, from views or datums, is validated against the filtered letter pool: a one-letter label is accepted if that letter is in the pool; a two-letter label is accepted only if both the leading letter and the following letter are individually in the pool (the leading letter becomes a prefix, e.g. AA or AB); labels of any other length, or containing letters outside the pool, are discarded as not relevant to the count.
With the valid labels collected, the first free letter is chosen in two passes:
- Single-letter pass, the tool looks at every collected label with no prefix, and returns the first letter in the pool that isn’t among them (e.g. if
AandBare taken,Cis returned immediately). - Prefixed pass, only if every single letter in the pool is taken does the tool move to two-letter labels, walking the pool in order as candidate prefixes (
A, thenB, thenC…) and returning the first prefix + letter combination not already in use (e.g.ACifAAandABare both taken).
If every single letter and every two-letter combination in the pool is exhausted, the result shows NOTHING AVAILABLE! instead of a letter, an edge case only reachable on an extremely dense drawing with a very small letter pool.
When no valid section/detail views exist at all, the view result simply returns the first letter of the pool outright (no scan needed); the same shortcut applies to datums when none are found.
4. Configuration: settings.ini
File Location
<install_folder>/DRY0048/settings.ini
Structure
; -----------------------------------------------
; FIRST AVAILABLE ITEM IN DRAWING - SETTINGS FILE
; -----------------------------------------------
; Display Information also only in Active Sheet (0: False [default], 1: True)
DISPLAY_INFO_IN_ACTIVE_SHEET=0
; List of letters to skip when managing View Names (e.g. "AEIOU")
LETTERS_TO_SKIP_IN_VIEWS="EFGHIJKLMNOPQRSTUVWXYZ"
; List of letters to skip when managing View Names (e.g. "AEIOU")
LETTERS_TO_SKIP_IN_DATUMS="IO"
; Consider two different Namings for Sections and Details (0: False [default], 1: True)
DIFFERENT_NAMING_FOR_SECTIONS_AND_DETAILS=0
Lines starting with ; are comments and are ignored.
Parameters
DISPLAY_INFO_IN_ACTIVE_SHEET
| Property | Value |
|---|---|
| Section | (root) |
| Type | Boolean (0 / 1) |
| Required | No |
| Default | 0 |
When set to 1, and the active drawing contains more than one sheet, the result message box appends a second block showing the first available letters for the active sheet alone, in addition to the whole-document result. Has no visible effect on single-sheet drawings.
DISPLAY_INFO_IN_ACTIVE_SHEET=1
LETTERS_TO_SKIP_IN_VIEWS
| Property | Value |
|---|---|
| Section | (root) |
| Type | String |
| Required | No |
| Default | "EFGHIJKLMNOPQRSTUVWXYZ" |
Letters removed from the pool before scanning section and detail views. The shipped default is deliberately restrictive, it leaves only A–D available, so review and adjust it to match your own drafting standard rather than assuming the default fits.
; Leaves the full alphabet available for views
LETTERS_TO_SKIP_IN_VIEWS=""
; Skips vowels only
LETTERS_TO_SKIP_IN_VIEWS="AEIOU"
LETTERS_TO_SKIP_IN_DATUMS
| Property | Value |
|---|---|
| Section | (root) |
| Type | String |
| Required | No |
| Default | "IO" |
Letters removed from the pool before scanning datum references. The default skips I and O, which are easy to misread against 1 and 0 on a datum callout.
LETTERS_TO_SKIP_IN_DATUMS="IO"
DIFFERENT_NAMING_FOR_SECTIONS_AND_DETAILS
| Property | Value |
|---|---|
| Section | (root) |
| Type | Boolean (0 / 1) |
| Required | No |
| Default | 0 |
When set to 1, section views and detail views are scanned and reported as two independent letter pools, each starts fresh from A (after skip-letters are removed) rather than sharing one combined pool. When left at 0, section and detail views are treated as a single pool and reported as one shared identifier.
DIFFERENT_NAMING_FOR_SECTIONS_AND_DETAILS=1
5. Examples
Example 1, Default Configuration, Single-Sheet Drawing
A drawing with one sheet containing a front view, a Section A, a Section B, and a Detail C, plus a datum A already placed.
DISPLAY_INFO_IN_ACTIVE_SHEET=0
LETTERS_TO_SKIP_IN_VIEWS="EFGHIJKLMNOPQRSTUVWXYZ"
LETTERS_TO_SKIP_IN_DATUMS="IO"
DIFFERENT_NAMING_FOR_SECTIONS_AND_DETAILS=0
Result:
Within the current Drawing Document, these are the first available letters:
• First Available View Identifier is | D |
• First Available Datum Identifier is | B |
Key points:
- Sections and details share one pool, so
AandB(sections) andC(detail) all count together, the next free letter isD - With the default view pool limited to
A–D, this drawing is one view away from needing a two-letter identifier DISPLAY_INFO_IN_ACTIVE_SHEET=0means no second block appears, even though there’s only one sheet to begin with
Example 2, Separate Section/Detail Naming, Multi-Sheet Drawing
A two-sheet drawing where sections and details are tracked on separate letter series, and the active sheet’s own count is also wanted.
DISPLAY_INFO_IN_ACTIVE_SHEET=1
LETTERS_TO_SKIP_IN_VIEWS=""
LETTERS_TO_SKIP_IN_DATUMS="IO"
DIFFERENT_NAMING_FOR_SECTIONS_AND_DETAILS=1
Sheet 1 has Section A and Detail A; Sheet 2 (the active sheet) has Section B only.
Result:
Within the current Drawing Document, these are the first available letters:
• First Available Section View Identifier is | C |
• First Available Detail View Identifier is | B |
• First Available Datum Identifier is | A |
Within the current Drawing Sheet, these are the first available letters:
• First Available Section View Identifier is | C |
• First Available Detail View Identifier is | A |
• First Available Datum Identifier is | A |
Key points:
- The document-wide result counts Section A and Section B together against the shared section pool, so the next free section letter is
C - The document-wide detail result only sees Detail A, so
Bis free - The sheet-only result recalculates from scratch using just Sheet 2’s contents, since Sheet 2 has no details or datums of its own, both come back as
A - With
LETTERS_TO_SKIP_IN_VIEWS="", the full alphabet is available for views, so there’s no early risk of running into two-letter identifiers
6. Troubleshooting
”User not found. Please login and try again.”
The tool could not identify the logged-in user at startup. Log out of the DRYCAD Suite, log back in, and relaunch.
”CATIA is not open. Please open CATIA and try again.”
The tool launched but could not find a running CATIA V5 process. Make sure CATIA is fully loaded before clicking the CommandBar button.
”Invalid Workspace”
The active document is not a Drawing. DRY0048 only operates on Drawing documents. Switch to or open a Drawing in CATIA, then relaunch.
The tool closes without showing any result
This happens if CATIA closes while the check is running, the background watchdog detects this every 2 seconds and shuts the tool down without a message box, since there’s no longer a valid drawing to report on. Reopen the Drawing in CATIA and relaunch.
The reported letter doesn’t match what I expected
Check the following:
- Views only count from the third view onward on any sheet with at least three views, a sheet with fewer than three views is skipped entirely for both views and datums, since the first two are always the sheet’s background/frame views
- Only Section and Detail view types are counted, Generic views (plain projections, for example) never carry a lettered identifier and are ignored
- Labels longer than two characters, or containing a letter outside the currently configured pool, are silently discarded rather than counted, check
LETTERS_TO_SKIP_IN_VIEWSandLETTERS_TO_SKIP_IN_DATUMS - If
DIFFERENT_NAMING_FOR_SECTIONS_AND_DETAILSis off, sections and details share one pool, a letter already used by a section will be skipped even when you’re only thinking about details, and vice versa
Result shows “NOTHING AVAILABLE!”
Every single-letter and two-letter combination in the currently configured pool is already in use. This is only realistic on a very dense drawing combined with a small letter pool, check whether LETTERS_TO_SKIP_IN_VIEWS or LETTERS_TO_SKIP_IN_DATUMS is excluding more letters than intended before assuming the drawing itself is the problem.
7. Version History
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2026-06 | Initial release |
DRY0048, First Available Item in Drawing | DRYCAD Solutions | v1.0.0