DRYCAD Suite | User Documentation | v1.0.0
Table of Contents
- Overview
- Getting Started
- Configuration: settings.ini
- Configuration: Color Rules File
- Examples
- Troubleshooting
- Version History
1. Overview
DRY0008 – Finalizer is the closing step of a CATIA V5 workflow: it applies your company’s visibility, color, and naming standards to a Part, Product, or Drawing in a single run, with no panel to click through. Everything it does is driven entirely by settings.ini and, optionally, a shared Color Rules file, configure it once per company, and every designer’s final pass looks identical.
Because it has no user interface, Finalizer’s behavior isn’t something you toggle in a dialog, it’s something you read in this document and configure in a text file. Every section below maps directly to a block of settings.ini, and every check it performs (colors, materials, constraints) can produce a message rather than a silent change, so you always know what happened after a run.
What it does:
- Adjusts visibility of axis systems, origin planes, constraints, geometrical sets, and sketches in Parts
- Renames the final Body from a configurable Part Number scheme, and validates Body/Instance colors against a shared rules file
- Ensures a Material is applied, and colors left-hand threaded features distinctly
- Renames Product instances, manages constraint visibility (including deleting invalid ones), and refreshes/updates the Product
- Renames, restyles, and locks Drawing views, updates scale textblocks, and restyles tolerances, datum features, and callouts
- Runs a fully custom macro after finalization, Enterprise only
Supported CAD platforms: CATIA V5
Workspace requirement: An active Part, Product, or Drawing document must be open in CATIA. Finalizer inspects the type of the active document automatically and applies the matching set of rules, there is nothing to select.
2. Getting Started
Prerequisites
- CATIA V5 must be running with a Part, Product, or Drawing document active
- You must be logged in with a valid DRYCAD Suite user account
settings.inishould be configured with your company’s standards before first use, an unconfigured file simply does nothing for most sections, since almost every setting defaults to “do not change”
Launching the Tool
DRY0008 is launched from the DRYCAD Suite CommandBar inside CATIA V5. Click the corresponding button to run it.
Unlike tools with a panel, Finalizer has no window to keep open, it runs its full pass immediately and closes. The tool checks the following conditions at startup, and will show an error and exit if any fail:
- 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 Part, Product, or Drawing, if not, an “Invalid Workspace” error is shown and the tool exits without changing anything
There is no top-bar menu, Settings shortcut, or Documentation link inside the tool itself, since there’s no window, all configuration happens directly in settings.ini (see Section 3).
3. Configuration: settings.ini
File Location
<install_folder>/DRY0008/settings.ini
Structure
The file is organized into three sections, [General Properties], [Part Documents Properties], [Product Documents Properties], and [Drawing Documents Properties], matching the type of the active document when Finalizer runs. Only the section matching the active document type is used on any given run; the others are simply ignored that time.
[General Properties]
COLOR_RULES_FILE="D:\path\to\your\ColorRules.txt"
[Part Documents Properties]
PART_CHECK_BODIES_COLOR=1
PART_FINAL_BODY_NAME="DRY_[PARTNUMBER]"
; ...additional parameters below
[Product Documents Properties]
PRODUCT_RENAME_INSTANCES=1
; ...additional parameters below
[Drawing Documents Properties]
DRAWING_VIEWS_LOCK_STATUS=2
; ...additional parameters below
Lines starting with ; are comments and are ignored. Almost every parameter defaults to a “do not change” / “false” state, an empty settings.ini means Finalizer runs but changes nothing, which is why configuring it correctly before rollout matters more here than in tools with a visible panel to catch mistakes.
Parameters, General
COLOR_RULES_FILE
| Property | Value |
|---|---|
| Section | [General Properties] |
| Type | File path (string) |
| Required | Only if either color-checking setting below is enabled |
| Default | (empty) |
Path to the shared Color Rules file (see Section 4). Used by both PART_CHECK_BODIES_COLOR and PRODUCT_CHECK_INSTANCES_COLORS. If either check is enabled but this path is empty or unreadable, that check is silently skipped, no error is raised, so an empty color-check message after a run that should have flagged something is the first thing to verify here.
Parameters, Part Documents
PART_CHECK_BODIES_COLOR / PART_CHECK_ONLY_MAIN_BODY_COLOR
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | Boolean (0/1) each |
| Required | No |
| Default | 0 |
When PART_CHECK_BODIES_COLOR=1, every Body in the Part (or, if PART_CHECK_ONLY_MAIN_BODY_COLOR=1, only the Main Body) is validated against COLOR_RULES_FILE. Any Body whose real color falls inside a forbidden zone is listed by name in the result message, prefixed with PART_BODIES_COLOR_MESSAGE.
PART_BODIES_COLOR_MESSAGE
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | String |
| Required | No |
| Default | "Following Bodies do not respect Color Rules:" |
The heading text shown above the list of non-compliant Body names, when at least one is found.
PART_AXIS_SYSTEMS_VISUALIZATION / PART_ORIGIN_PLANES_VISUALIZATION / PART_CONSTRAINTS_VISUALIZATION / PART_GEOMETRICAL_SETS_CONTENT_VISUALIZATION / PART_BODIES_SKETCHES_VISUALIZATION
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | Integer (0–2) |
| Required | No |
| Default | 0 |
Each controls the visibility of one element category in the Part.
; 0 = Do not Change [default]
; 1 = Hide
; 2 = Show
PART_AXIS_SYSTEMS_VISUALIZATION=1
PART_GEOMETRICAL_SETS_CONTENT_VISUALIZATION applies to every Geometrical Set except the ones matched by PART_ALWAYS_VISIBLE_GEOMETRICAL_SET_NAMES below, which are always shown regardless of this setting.
PART_ALWAYS_VISIBLE_GEOMETRICAL_SET_NAMES
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | Semicolon-separated string list, wildcard * supported |
| Required | No |
| Default | (empty) |
Geometrical Set names, or name patterns, that are always forced visible, overriding PART_GEOMETRICAL_SETS_CONTENT_VISUALIZATION.
; Keeps every set whose name starts with "Final_Surface" visible
PART_ALWAYS_VISIBLE_GEOMETRICAL_SET_NAMES="Final_Surface*"
PART_FINAL_BODY_NAME
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | String, placeholders supported |
| Required | No |
| Default | (empty, feature disabled if not set) |
The name applied to the Part’s final Body. Supports [PARTNUMBER] and [NAME] placeholders.
PART_FINAL_BODY_NAME="DRY_[PARTNUMBER]"
Finalizer looks for exactly one top-level Body (excluding names matched by the two exclusion settings below); if it finds exactly one, that Body is renamed and set as the Part’s Main Body. If there’s more than one candidate, Finalizer instead looks for a Body already named exactly like the computed final name and adopts that one as Main Body, it never guesses among several equally-valid Bodies. If neither case resolves a Body, Finalizer shows “Main Body is not defined. Please select the Final Body for current Part Document.” and lets you pick one manually in CATIA; the selected Body is then renamed for you.
PART_PREFIXES_TO_EXCLUDE / PART_SUFFIXES_TO_EXCLUDE
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | Semicolon-separated string list |
| Required | No |
| Default | (empty) |
Body names starting or ending with any of these values are excluded from Main Body identification, useful for helper Bodies like Heli-Coils or datum geometry that should never be picked as the final Body.
PART_PREFIXES_TO_EXCLUDE="HELI_COIL_;HELICOIL;DATUM_"
PART_SUFFIXES_TO_EXCLUDE="_DATUM"
PART_COLOR_LEFT_THREADS / PART_LEFT_THREADS_COLOR
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | Boolean / RGB or HEX string |
| Required | No |
| Default | 0 / (empty) |
When enabled, every left-threaded Hole and Thread feature in the Part is colored with PART_LEFT_THREADS_COLOR, a quick visual flag so left-hand threads are never missed on the shop floor.
PART_COLOR_LEFT_THREADS=1
PART_LEFT_THREADS_COLOR="255,255,0"
PART_ENSURE_APPLIED_MATERIAL
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | Boolean |
| Required | No |
| Default | 0 |
When 1, Finalizer checks whether a Material is applied to the Part itself or its Main Body. If neither has one, the message “There is no material applied to current Part or Main Body.” is added to the result, this is a warning, not a blocker; the run still completes.
PART_DOCUMENT_CUSTOM_MACRO / PART_DOCUMENT_CUSTOM_VBA_MACRO_MODULE_NAME
| Property | Value |
|---|---|
| Section | [Part Documents Properties] |
| Type | File path / string |
| Required | Module name required only for .catvba macros |
| Default | (empty) |
A custom macro (.catvbs, .CATScript, .catvba, or .exe) run at the very end of the Part finalization pass. This only runs for users licensed as Enterprise, on a Professional license the setting is read but never executed, regardless of what’s configured here. .catvba macros additionally require the module name to be set, or the run fails with “Module Name of CATVBA Macro is missing.”
Parameters, Product Documents
PRODUCT_CHECK_INSTANCES_COLORS / PRODUCT_INSTANCES_COLOR_MESSAGE
| Property | Value |
|---|---|
| Section | [Product Documents Properties] |
| Type | Boolean / string |
| Required | No |
| Default | 0 / "Following Instances do not respect Color Rules:" |
Same mechanism as the Part-level color check, applied to every direct instance in the Product against COLOR_RULES_FILE. Instances with the exact default white color (255,255,255) are always treated as compliant and skipped, this is intentional, since it represents “no color override” rather than a designer’s deliberate choice.
PRODUCT_RENAME_INSTANCES
| Property | Value |
|---|---|
| Section | [Product Documents Properties] |
| Type | Boolean |
| Required | No |
| Default | 0 |
When 1, every instance is renamed to <PartNumber>.<n>, numbered per Part Number starting at 1. Renaming happens in two passes internally (via a temporary name) specifically so that renumbering never collides with an existing name mid-process. Instances with no resolvable Part Number are left untouched.
PRODUCT_CONSTRAINTS_VISUALIZATION / PRODUCT_CONSTRAINTS_DELETE_WARNING_MESSAGE
| Property | Value |
|---|---|
| Section | [Product Documents Properties] |
| Type | Integer (0–6) / string |
| Required | No |
| Default | 0 / (built-in default message) |
; 0 = Do Nothing [default]
; 1 = Hide All Constraints
; 2 = Show All Constraints
; 3 = Hide All Valid Constraints, Show All Invalid Constraints
; 4 = Show All Valid Constraints, Hide All Invalid Constraints
; 5 = Delete All Invalid Constraints with Warning
; 6 = Delete All Invalid Constraints without Warning
PRODUCT_CONSTRAINTS_VISUALIZATION=3
Modes 1–4 only change visibility. Mode 5 doesn’t delete anything by itself, it flags the invalid constraints internally, and after the finalization pass finishes you’re shown PRODUCT_CONSTRAINTS_DELETE_WARNING_MESSAGE with Yes/No; only a Yes actually deletes them. Mode 6 skips the prompt entirely and deletes invalid constraints immediately. There is no undo from inside Finalizer for either delete mode, CATIA’s own undo history is your only way back.
PRODUCT_CAMERAS_VISUALIZATION
| Property | Value |
|---|---|
| Section | [Product Documents Properties] |
| Type | Integer (0–2) |
| Required | No |
| Default | 0 |
Same Hide/Show/Do-not-change convention as the Part visibility settings, but only applies once the document already has more than 7 cameras, below that count, cameras are left alone regardless of this setting, since CATIA’s own default cameras shouldn’t be touched.
PRODUCT_UPDATE / PRODUCT_SHAPES_REFRESH
| Property | Value |
|---|---|
| Section | [Product Documents Properties] |
| Type | Boolean each |
| Required | No |
| Default | 0 |
PRODUCT_SHAPES_REFRESH=1 deactivates and reactivates the default shape of every child Product, forcing a display refresh, useful when instances look stale after upstream changes. PRODUCT_UPDATE=1 calls CATIA’s own Product update; if it fails, the message “It is not possible to update the product.” is added, but the rest of the finalization pass still completes.
PRODUCT_DOCUMENT_CUSTOM_MACRO / PRODUCT_DOCUMENT_CUSTOM_VBA_MACRO_MODULE_NAME
Same behavior and Enterprise-only restriction as the Part-level custom macro settings above, run at the end of the Product finalization pass.
Parameters, Drawing Documents
DRAWING_EDIT_LOCKED_VIEWS
| Property | Value |
|---|---|
| Section | [Drawing Documents Properties] |
| Type | Boolean |
| Required | No |
| Default | 0 |
When 1, every view is temporarily unlocked at the start of the run so the rest of the settings below can actually modify it, then re-locked to its original state at the very end (unless DRAWING_VIEWS_LOCK_STATUS below overrides that). Leave this at 0 only if you’re certain none of your views are locked, otherwise, locked views will silently be skipped by every visual/text update in this section.
DRAWING_VIEWS_FRAME_VISUALIZATION / DRAWING_AXIS_VISUALIZATION / DRAWING_CONSTRAINTS_VISUALIZATION
Same Hide/Show/Do-not-change (0/1/2) convention as the Part-level visibility settings, applied to view frames, sketch axis/support elements, and constraints respectively, across the whole Drawing.
DRAWING_VIEWS_LOCK_STATUS
| Property | Value |
|---|---|
| Section | [Drawing Documents Properties] |
| Type | Integer (0–2) |
| Required | No |
| Default | 0 |
; 0 = Do not Change [default], restores each view's original lock state
; 1 = Lock every view
; 2 = Unlock every view
DRAWING_VIEWS_LOCK_STATUS=2
This is applied last, after every other Drawing setting, deliberately, so a Drawing can be fully unlocked for the duration of the run (via DRAWING_EDIT_LOCKED_VIEWS) and still end up locked again if that’s your standard.
DRAWING_UPDATE_VIEW_NAMES / DRAWING_VIEW_NAMES_SCHEME / DRAWING_DELETE_UNMATCHED_VIEW_NAMES
| Property | Value |
|---|---|
| Section | [Drawing Documents Properties] |
| Type | Boolean / semicolon-separated pairs / Boolean |
| Required | No |
| Default | 0 / (empty) / 0 |
DRAWING_VIEW_NAMES_SCHEME maps original view name prefixes to new ones, 'ORIGINAL|NEW' per pair, semicolon-separated. Use [DELETE] as the new value to mark a name for removal instead of renaming.
; Renames "Vista Frontale" to "FRONT_VIEW", and marks "Dettaglio" views for deletion
DRAWING_VIEW_NAMES_SCHEME="Vista Frontale|FRONT_VIEW;Dettaglio|[DELETE]"
If DRAWING_DELETE_UNMATCHED_VIEW_NAMES=1, any view name prefix that doesn’t appear anywhere in the scheme is also removed, not just ones explicitly marked [DELETE], so an incomplete scheme with this flag on can delete more names than intended. Only views from the third view onward on each sheet are considered at all; the first two views per sheet are never touched by name updates, matching a convention used across the Drawing template.
DRAWING_ADD_PRODUCT_SCENE_NAME
| Property | Value |
|---|---|
| Section | [Drawing Documents Properties] |
| Type | Boolean |
| Required | No |
| Default | 0 |
When 1, Isometric views generated from a Product Scene are renamed to that scene’s name automatically, overriding whatever the naming scheme above would have produced for that view.
DRAWING_ADD_FRAME_TO_VIEW_NAME / DRAWING_VIEW_NAME_TEXT_JUSTIFICATION / DRAWING_VIEW_NAME_COLOR / DRAWING_VIEW_NAME_FONT_NAME / DRAWING_VIEW_NAME_BOLD / DRAWING_VIEW_NAME_MAIN_FONT_SIZE / DRAWING_VIEW_NAME_FONT_SIZE_SCHEME
Styling applied to each view name’s text, once it’s been resolved by the settings above. DRAWING_VIEW_NAME_FONT_SIZE_SCHEME lets specific keywords inside the name (e.g. "Scala:") use a different font size than DRAWING_VIEW_NAME_MAIN_FONT_SIZE.
; Bumps the font size to 2.0 wherever the text "Scala:" appears in a view name
DRAWING_VIEW_NAME_FONT_SIZE_SCHEME="Scala:|2.0"
These styling settings only apply to views whose name text was actually touched this run, a view excluded by the third-view rule above, or one that was skipped for being locked, keeps its existing styling untouched.
DRAWING_GEOMETRICAL_TOLERANCES_FONT_NAME / _FONT_SIZE / _FONT_BOLD / _COLOR, and the equivalent DRAWING_DATUM_FEATURES_* and DRAWING_CALLOUTS_* groups
Three parallel groups of styling parameters, one per element type, Geometrical Tolerances, Datum Features, and Callouts. Each is applied across every unlocked view in the Drawing; a locked view’s tolerances, datums, and callouts are left exactly as they were, which is why DRAWING_EDIT_LOCKED_VIEWS matters if any of your views are normally locked.
DRAWING_UPDATE_SCALE_IN_TEXTBLOCK / DRAWING_TEXTBLOCK_SCALE_TEXT_NAME / DRAWING_TEXTBLOCK_SCALE_UPDATE_MODE
| Property | Value |
|---|---|
| Section | [Drawing Documents Properties] |
| Type | Boolean / string / Integer (0–3) |
| Required | Text name required if the Boolean is 1 |
| Default | 0 / (empty) / 0 |
; 1 = First View Scale Value
; 2 = First Front View Scale Value
; 3 = Average Scale Value from Views
DRAWING_TEXTBLOCK_SCALE_UPDATE_MODE=2
Updates the text of the drawing text element named DRAWING_TEXTBLOCK_SCALE_TEXT_NAME with the scale value selected by the update mode. If no text element with that exact name exists on the sheet, the run adds “Drawing Textblock Scale Text named ‘<name>’ is not found.” to the result message rather than failing the whole pass.
DRAWING_DOCUMENT_CUSTOM_MACRO / DRAWING_DOCUMENT_CUSTOM_VBA_MACRO_MODULE_NAME
Same behavior and Enterprise-only restriction as the Part- and Product-level custom macro settings, run at the end of the Drawing finalization pass, but before the final Lock/Unlock step, so a custom macro can still act on views while their lock state from this run is known.
4. Configuration: Color Rules File
The Color Rules File is a shared, plain text file (.txt) that defines which RGB color zones are not allowed on a Body or Product instance. Its path is set once, in COLOR_RULES_FILE (see Section 3), and reused by both the Part-level and Product-level color checks.
4.1 File Syntax Overview
One rule per line. Blank lines are ignored; any line not starting with < or > is ignored as well, so plain-text comments work without a special comment marker.
><Red>,<Green>,<Blue>
Each line has exactly three comma-separated components, one per RGB channel, and each component must start with < or > followed by an integer from 0 to 255. A line that doesn’t parse this way is silently skipped, not reported as an error.
4.2 How a Rule Is Evaluated
Each component defines a half-open range that the checked color must avoid to be considered valid:
| Prefix | Meaning |
|---|---|
>N | The channel value must not fall between N and 255 (i.e. the rule flags colors at or above roughly N) |
<N | The channel value must not fall between 0 and N (i.e. the rule flags colors at or below roughly N) |
A Body or instance is flagged as non-compliant only if all three channels of its real color fall inside the same rule’s forbidden zone. A color only needs to escape one rule’s zone on at least one channel to pass that rule; it must fail every channel of a rule to be flagged by it. If more than one rule is defined, a color is flagged the moment it falls inside any rule’s zone.
4.3 Full Syntax Reference
><Red-min>,><Green-min>,><Blue-min>
<<Red-max>,<<Green-max>,<<Blue-max>
5. Examples
Example 1, Flag Near-White and Near-Black Bodies
A company standard where no functional Body should be left at CATIA’s stock near-white default, nor be colored so dark it’s indistinguishable from a shadow in renders.
>230,>230,>230
<20,<20,<20
What it does: any Body whose color has all three RGB channels above 230 (i.e. very light) is flagged; separately, any Body with all three channels below 20 (i.e. very dark) is also flagged. A Body colored 128,64,32 (a mid-tone) passes both rules cleanly.
Key points:
- Two independent rules, evaluated in order, a color only needs to match one to be flagged
- This pairs naturally with
PART_ENSURE_APPLIED_MATERIAL=1, a Body with no material and stock coloring is exactly the case this rule is designed to catch
Example 2, Reserve a Brand Color for Approved Use Only
A stricter setup where the company’s signature gold is reserved for specific, deliberately-colored features, and shouldn’t appear on ordinary Bodies by accident (e.g. from a copy-paste of a differently-purposed feature).
>190,>150,>60
Combined with settings.ini:
PART_CHECK_BODIES_COLOR=1
PART_CHECK_ONLY_MAIN_BODY_COLOR=0
PART_BODIES_COLOR_MESSAGE="These Bodies are using a reserved color and need review:"
Key points:
PART_CHECK_ONLY_MAIN_BODY_COLOR=0means every Body in the Part is checked, not just the Main Body, appropriate here since the goal is finding any stray use of the reserved color- The custom
PART_BODIES_COLOR_MESSAGEgives reviewers a clear, actionable heading instead of the generic default text
6. Troubleshooting
”User not found. Please login and try again.”
The tool could not find a valid DRYCAD Suite user session. Make sure you are logged in to the Suite before running Finalizer.
”CATIA is not open. Please open CATIA and try again.”
The tool cannot connect to a running CATIA V5 instance. Launch CATIA V5 first, then run the macro.
”Invalid Workspace”
The active document is not a Part, Product, or Drawing. Finalizer only operates on these three document types. Make one of them active in CATIA and run the tool again.
”ERROR: No Active Document to Finalize.”
CATIA is running but has no document open at all (or no window is open). Open the document you want to finalize before launching the tool.
”ERROR: Something went wrong…”
An unexpected error occurred partway through the finalization pass. This is a catch-all, not tied to one specific setting. Because visibility is restored and interactivity is re-enabled in a finally block regardless of where the failure happened, CATIA should be left in a usable state, but any changes scheduled after the failing step will not have been applied. Check the document manually for partial changes, then retry; if it fails consistently on the same document, narrow it down by disabling settings one section at a time (Part, Product, or Drawing) until the failure stops.
”Main Body is not defined. Please select the Final Body for current Part Document.”
PART_FINAL_BODY_NAME is set, but Finalizer couldn’t resolve exactly one candidate Body automatically, either there are multiple top-level Bodies and none is already named to match, or there are none at all after exclusions. Select the Body that should become the Main Body when prompted; it will be renamed to match your configured scheme. To avoid this prompt going forward, review PART_PREFIXES_TO_EXCLUDE / PART_SUFFIXES_TO_EXCLUDE, an unnamed helper Body not covered by these exclusions is the most common cause.
”There is no material applied to current Part or Main Body.”
PART_ENSURE_APPLIED_MATERIAL=1 and neither the Part document nor its Main Body has a Material assigned. This is a warning, not a failure, the rest of the pass still completes. Apply a Material in CATIA and re-run Finalizer, or a downstream check (e.g. a drawing title block driven by material) may show incorrect data.
”It is not possible to update the product.”
PRODUCT_UPDATE=1 and CATIA’s own Product update failed, commonly due to a broken link, missing document, or an update error unrelated to Finalizer itself. Try updating the Product manually in CATIA first (Edit > Update) to see the underlying CATIA error, fix it, then re-run.
”Drawing Textblock Scale Text named ’…’ is not found.”
DRAWING_UPDATE_SCALE_IN_TEXTBLOCK=1, but no text element on the sheet has the exact name in DRAWING_TEXTBLOCK_SCALE_TEXT_NAME. Check for a typo in the setting, or confirm the text element exists and hasn’t been renamed or deleted on this particular sheet template.
”Module Name of CATVBA Macro is missing.”
A .catvba file is set in one of the *_DOCUMENT_CUSTOM_MACRO parameters, but the matching *_DOCUMENT_CUSTOM_VBA_MACRO_MODULE_NAME is empty. .catvba files require the module name to locate the entry point; .catscript, .catvbs, and .exe do not need this value.
The custom macro never runs
Custom macros (PART_DOCUMENT_CUSTOM_MACRO, PRODUCT_DOCUMENT_CUSTOM_MACRO, DRAWING_DOCUMENT_CUSTOM_MACRO) are an Enterprise-only feature. On a Professional license, these settings are read but intentionally never executed, this is by design, not a bug. Confirm your account’s license level before troubleshooting the macro file itself.
Colors aren’t being flagged even though I expect them to be
- Confirm
COLOR_RULES_FILEin[General Properties]points to a reachable file, an empty or missing path silently skips the check entirely, without an error - Confirm the corresponding check is actually enabled (
PART_CHECK_BODIES_COLORorPRODUCT_CHECK_INSTANCES_COLORS) - Check each rule line has exactly three comma-separated values, each starting with
<or>followed by a number 0–255, malformed lines are skipped silently - Remember a color must fail every channel of a rule to be flagged by it, a near-match on two channels but not the third will pass
- For Product instances specifically: pure white (
255,255,255) is always treated as compliant regardless of your rules, since it represents “no override” rather than a deliberate color choice
A Drawing view’s name or style wasn’t updated
- Confirm the view isn’t one of the first two views on its sheet, Finalizer only processes the third view onward per sheet
- Confirm the view isn’t locked, or that
DRAWING_EDIT_LOCKED_VIEWS=1is set, locked views are skipped by name, tolerance, datum, and callout updates alike - For a renamed view specifically, check that its original prefix appears exactly (case-insensitive) as a key in
DRAWING_VIEW_NAMES_SCHEME, an unmatched prefix is either left alone or deleted, depending onDRAWING_DELETE_UNMATCHED_VIEW_NAMES
7. Version History
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2026-06 | Initial release |
DRY0008, Finalizer | DRYCAD Solutions | v1.0.0