Skip to content
CAI
Software that uses CAICheck a score

rmcanany/HousekeeperExternalPrograms

46.3

Weak · 1 October 2026

2.5k

lines of production code

VB.NET

with Vbscript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a collection of automation utilities and scripts designed to streamline specific workflows within the Solid Edge CAD environment. It provides tools for managing sheet metal parts, such as creating flat patterns, converting thin parts, and validating geometry integrity. Additionally, it offers capabilities for automating drafting tasks, including renaming sheets, updating parts lists, replacing OLE links, and converting drawing views to static 2D geometry.

How it got here

2021–2022 — Solid Edge automation utilities

6 changes.

This period focused on developing a suite of standalone tools and scripts to automate specific tasks within Solid Edge, including ISO view fitting, sheet renaming, and DXF export. The work also involved enhancing existing utilities with new operating modes and standardizing project dependencies across the codebase.

2023–2026 — Solid Edge automation utilities

11 changes.

This period focused on developing a suite of standalone tools and code snippets to automate common Solid Edge tasks, particularly in sheet metal and drafting. The work introduced utilities for converting thin parts to sheet metal, generating flat patterns, validating model integrity, and managing drawing elements like blocks and parts lists. These additions aimed to streamline workflows by providing reusable scripts for geometry processing, property management, and file standardization.

Features

Add CreateFlatPattern utility for Solid Edge sheet metal parts

Introduces a new standalone .NET 4.7.2 console application that automates the creation of flat patterns in Solid Edge. The tool connects to an active Solid Edge session, validates that the document is in the SheetMetal environment, and processes both Ordered (.psm) and Sync (.par) part files. It identifies the largest planar face and its longest linear edge to generate a flat pattern, then saves the document and switches the user to the flat pattern editing environment. The utility includes error handling to alert users via an external log if the environment is incorrect, geometry is invalid, or a flat pattern already exists.

CreateFlatPattern · high confidence

Added SaveAndTogglePreviewGeometry utility for Solid Edge

A new standalone .NET utility has been added to automate the process of saving Solid Edge files while toggling the 'preview geometry' setting. The tool connects to the running Solid Edge application via COM, identifies the document type, and specifically for assembly files, it disables preview geometry, saves the file, re-enables preview geometry, and saves again to ensure the geometry is stored correctly. For non-assembly documents, it simply performs a standard save operation.

SaveAndTogglePreviewGeometry · high confidence

Initial release of AssemblyReport VBScript utility

This change introduces a new VBScript utility (AssemblyReport.vbs) that automates the generation of atomic parts reports for Solid Edge assemblies. The script connects to the running Solid Edge application, retrieves the active document, and executes the external report.exe tool with specific command-line arguments to output a text file listing the assembly's components. Documentation and initial release notes are also included.

AssemblyReport, BreakExcelLinks · high confidence

Initial release of FitIsoView Solid Edge automation tool

Introduces FitIsoView, a .NET Framework 4.7.2 console application designed to automate the creation and fitting of ISO views within Solid Edge documents. The tool connects to the active Solid Edge instance and executes specific commands (AssemblyViewISOView/PartViewISOView and AssemblyViewFit/PartViewFit) depending on whether the active document is an assembly, part, or sheet metal file; for draft documents, it fits the sheet instead. It loads configuration settings from a JSON file (form\_main\_settings.json) and saves the modified document, logging any errors to a text file.

FitIsoView · high confidence

Initial release of Thin Part to Sheetmetal sample program

Adds a new PowerShell-based sample tool for Solid Edge that automates the conversion of imported thin parts into sheetmetal bodies. The script connects to the active Solid Edge session, identifies single-model files, finds the largest planar face, and applies the ConvToSM conversion, saving the document upon success or logging errors to a text file if the process fails.

ThinPartToSheetmetal · high confidence

Initial release of UpdatePartsListStyleFromTemplate utility

This entry introduces the UpdatePartsListStyleFromTemplate tool, a .NET Framework 4.7.2 application designed to automate the update of parts list styles within Solid Edge draft documents. The utility connects to a running Solid Edge instance and modifies parts lists based on a configuration file (program\_settings.txt) that maps sheet background names to specific style names. It reads a DraftList.txt file to validate available styles, iterates through the active document's sheets, and applies the corresponding style settings to any parts lists found, ensuring a one-to-one correspondence between sheet backgrounds and styles.

UpdatePartsListStyleFromTemplate · high confidence

Introduce QtyFromAssy tool for propagating assembly quantities to part properties

Adds a new standalone utility that calculates the total quantity of each part and subassembly within an active Solid Edge assembly and writes these values, along with the source assembly name, into the custom properties of the individual files. The tool respects the BOM inclusion flag and supports configurable quantity multipliers and weldment part inclusion via a settings file, making the derived data available for downstream uses such as Draft callouts.

QtyFromAssy · high confidence

A new standalone .NET 4.7.2 console application has been added to automate the replacement of OLE-linked SmartFrame2d objects with Block definitions in Solid Edge Draft files. The tool connects to a running Solid Edge instance, scans specified background sheets for linked objects, and substitutes them with blocks from a user-defined template file. It supports a 'ReportLinksOnly' dry-run mode for auditing, allows configuration of target sheets, link filenames, and corresponding block names via a settings file, and logs errors to a text file if processing fails.

ReplaceOLELinks · high confidence

New ConvertDraftTo2D utility for Solid Edge drawings

A new PowerShell-based tool has been added to convert Solid Edge drawing views into standalone 2D geometry, disconnecting them from the underlying 3D model. The script processes both background and working sections of a draft file, flattening drawing views and updating callout balloon text to display static text rather than dynamic property links. Because this operation is irreversible, the tool includes error handling that logs any processing failures to an error file.

ConvertDraftTo2D · high confidence

New ReplaceBlocks sample program for Solid Edge

A new .NET Framework 4.7.2 console application has been added to automate block management in Solid Edge Draft documents. The program reads configuration from a \program\_settings.txt\ file to perform three operations in order: replacing existing blocks with those from a template, adding new blocks from the template, and deleting specified blocks. It connects to the active Solid Edge session, processes the blocks, and saves the document, logging any errors to a file.

ReplaceBlocks · high confidence

New code snippets for Solid Edge automation

Added a new set of code snippets to the Snippets directory to automate common Solid Edge tasks. These include converting thin parts to sheet metal, updating thread properties, managing face styles (import/export/modify), updating parts lists in drawings, and changing units of measure to ISO or ANSI standards. Additional snippets allow for serial incrementing of properties, toggling preview geometry, and fitting ISO views.

Snippets · high confidence

New macro to convert sheet metal units to inches and export flat patterns as DXF

A new VBScript macro, ChangeToInchAndSaveAsFlatDXF.vbs, has been added to the Solid Edge Housekeeper toolset. This script connects to an open Solid Edge document, changes the length units to inches, and saves the flat pattern as a DXF file. The output filename is derived from the source file name (replacing the .psm extension with .dxf), and the save location can be configured to either the original directory or a custom path via the Housekeeper settings.

ChangeToInchAndSaveAsFlatDXF · high confidence

New tool to validate sheet metal flat pattern integrity via volume comparison

A new standalone utility has been added that connects to an active Solid Edge session to compare the volume of a sheet metal model against its flat pattern. It calculates a normalized volume difference and flags the document as erroneous if this difference exceeds a user-defined threshold specified in a settings file, helping to detect inconsistencies caused by out-of-date flat patterns after adding ordered features.

CompareFlatAndModelVolumes · high confidence

RecognizeHoles now converts thin parts to sheet metal

The RecognizeHoles add-in now supports processing Solid Edge sheet metal documents (\*.psm). In addition to its existing capability to find cylindrical cutouts and convert them into hole features, the tool now attempts to convert the active document to sheet metal when a .psm file is detected. This involves healing and optimizing the geometry, recognizing holes, and then using the largest face as the base for the sheet metal conversion before returning the document to Synchronous mode.

RecognizeHoles · high confidence

RenameSheets utility for SolidEdge draft sheets

A new standalone .NET Framework 4.7.2 application that automates the renaming of sheets in SolidEdge Draft documents. The tool renames each sheet to match the filename of the first drawing view's model link, appending the configuration name if applicable. To handle duplicate names, it appends a configurable suffix (defaulting to 'Copy') followed by a sequential number, which can be customized by editing a local 'suffix.txt' file. Sheets without model views are left unchanged, and the tool includes a safeguard to temporarily rename sheets to random values if the file has been processed previously to ensure unique naming.

RenameSheets · high confidence

Behavioural changes

AddRemoveCustomProperties: New 'RemoveAllExcept' operating mode

The AddRemoveCustomProperties utility now supports a second removal strategy for custom file properties. In addition to the existing mode that deletes properties listed in property\_list.txt, users can now specify 'OperatingMode RemoveAllExcept' to delete all custom properties except those on the list. This allows for selective preservation of specific properties during cleanup operations.

AddRemoveCustomProperties · high confidence

Dependencies

Standardize project dependencies and target frameworks

Updated multiple sample projects to target .NET Framework 4.7.2 and added a dependency on Newtonsoft.Json version 13.0.3 where required. The CompareFlatAndModelVolumes project was also updated to target .NET 6.0.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 46 → 46 (+0.2)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 95 → 59 (-35.4)
  • Architecture 69 → 100 (+31.0)
  • Maturity 40 → 48 (+8.5)
  • Readiness 30 → 30 (-0.1)
  • Security 100 → 87 (-13.3)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no project overview (README.md)

New (44)

  • CreateFlatPattern.Main (cognitive 63) (CreateFlatPattern/CreateFlatPattern.vb)
  • CreateFlatPattern.Main (cyclomatic 30) (CreateFlatPattern/CreateFlatPattern.vb)
  • Duplicated block (13 lines × 2) (QtyFromAssy/Module1.vb)
  • Duplicated block (15 lines × 4) (CompareFlatAndModelVolumes/Program.vb)
  • Duplicated block (16 lines × 4) (CreateFlatPattern/CreateFlatPattern.vb)
  • Duplicated block (21 lines × 2) (CompareFlatAndModelVolumes/MarshalHelper.vb)
  • Duplicated block (23–24 lines × 3) (QtyFromAssy/Module1.vb)
  • Duplicated block (24 lines × 3) (CompareFlatAndModelVolumes/Program.vb)
  • Duplicated block (28 lines × 3) (CreateFlatPattern/CreateFlatPattern.vb)
  • Duplicated block (36–37 lines × 3) (QtyFromAssy/Module1.vb)
  • Duplicated block (6 lines × 7) (AddRemoveCustomProperties/Module1.vb)
  • EmptyCatchBlock (CompareFlatAndModelVolumes/Program.vb)
  • EmptyCatchBlock (CreateFlatPattern/CreateFlatPattern.vb)
  • EmptyCatchBlock (CreateFlatPattern/CreateFlatPattern.vb)
  • EmptyCatchBlock (FitIsoView/Module1.vb)
  • EmptyCatchBlock (RecognizeHoles/Module1.vb)
  • EmptyCatchBlock (RecognizeHoles/Module1.vb)
  • EmptyCatchBlock (ReplaceBlocks/Module1.vb)
  • EmptyCatchBlock (SaveAndTogglePreviewGeometry/Program.vb)
  • End-of-life runtime: .NET net6.0
  • …and 24 more

Architecture

  • Containers 10 added · 0 removed · contexts 0 added · 0 removed · edges 0 added · 0 removed

Added containers (10)

  • cli:CompareFlatAndModelVolumes
  • cli:CreateFlatPattern
  • cli:FitIsoView
  • cli:QtyFromAssy
  • cli:RecognizeHoles
  • cli:RenameSheets
  • cli:ReplaceBlocks
  • cli:ReplaceOLELinks
  • cli:SaveAndTogglePreviewGeometry
  • cli:UpdatePartsListStyleFromTemplate

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

rmcanany/HousekeeperExternalPrograms was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 728ab3fad8967bf7bd95ffb42eb59d5bf55e1093 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.