Solid Edge Housekeeper is a utility for finding annoying little errors in your project. It is free and open source and you can find it Here.
Please note, the program has been tested on many of our files, but none of yours. Do not run it on production work without testing on backups first.
Feel free to report bugs and/or ideas for improvement on the Solid Edge Forum
Contributed by @Fiorini (GitHub: @farfilli). Thank you!
Uses the SolidEdgeCommunity OpenInBackground function (Thank you @JNewell!). Speedup varies -- from 3X to 10X depending on the task. The option is set on the Configuration Tab.
Some tasks (Fit view, Interactive edit, and Save As) are
incompatible with background processing. The program checks
and notifies the user of a conflict.
At this time, assemblies still run in the old mode -- graphics hidden, not disabled.
Added an option to randomly select and shuffle a fraction of the total files
found. The Sample fraction is a decimal number between 0.0 and 1.0. Sort
options are set on the Configuration Tab.
This option is primarily intended for software testing, but can be used for any purpose.
Fixed an issue, in top-level search mode, where the top level assembly itself was not sorted correctly.
Fixed an issue where bottom up search was not returning Family of Assemblies links.
Contributed by @Fiorini (GitHub: @farfilli). Thank you!
Now does an in-place update, rather than creating a new file.
The new method preserves the file creation date, which was requested by several users. It also reports styles and background sheets not updated because they were not found in the template.
These styles are processed: DimensionStyles, DrawingViewStyles, LinearStyles, TableStyles, TextCharStyles, TextStyles.
These are not: DashStyles, FillStyles, HatchPatternStyles, SmartFrame2dStyles.
The latter group encountered errors in testing. However, the cause was not thoroughly investigated. If you need them updated, please ask on the Forum.
Note, the previous method (the one that creates a new file) is not exposed in the user interface, but has not been removed from the code. If you prefer that version, please ask on the Forum.
Added sorting options of None, Alphabetic, and
Dependency (Thank you @HIL). Previously
the list was always sorted alphabetically.
The Dependency order is intended to help eliminate
the annoying dark gray corners on drawings. The None option is primarily
intended to preserve the order on imported lists.
These options are set on the Configuration Tab -- File List Group.
Added an option to recursively update part copies. It is yet another technique to help eliminate gray corners on drawings.
Recursion means that if a Part Copy is encountered, the parent file is opened. If that file has a Part Copy, its parent is opened in turn. The program continues in this fashion until the base file (ie one with no Part Copies) is reached. It then updates each file in reverse order.
The option is set on the Configuration Tab -- Miscellaneous Group.
Added this functionality for Draft files (Thank you @Seva).
Includes wildcard search, Regex processing, and Property formula substitution. For details, see the Help topic under Assembly Tasks: Property Find/Replace.
The example shown above would populate the Draft file's Title with the Title of the model file.
Checks all background sheets of a Draft file for the presence of a drawing view.
Fixed an issue where a top-level search with no top-level folders resulted in no files being found (Thank you @MonkTheOCD_Engie)
Added the ability to report files unrelated to a top level assembly using a Bottom-Up search. Previously only Top-Down search had this option.
Fixed an issue where files added by drag-and-drop were
deleted from the list when running the Update File List
command (Thank you @HIL).
Added Save Copy As for all file types. In the ComboBox, select
the Copy option. If you try to save a copy to the original folder,
you will get an error.
Added Wildcard and Regular Expression search options (Thank you @DaveG, @mmtrebuchet). Also added Property Formula substitution (Thank you @64Pacific, @ben.steele6044).
The example above would replace anything (including nothing) in Custom.Engineer with "Superman". The checkboxes set the search type, either Plain Text (PT), Wildcard (WC), or Regular Expression (RX).
Regular Expressions are more powerful than wildcards. They are also notoriously cryptic. To get started, check out the .NET Regex Guide.
The Property Formula has the same syntax as the Callout command, except preceeded with 'System.' or 'Custom.' as shown. This example would replace anything in Custom.Description with a profile definition and its cut length. (Assuming they are present in the file.)
Added a regular expression comparison operator, regex_match.
Added a search option for Draft files with the same name as the model (Thank you for input @n0minus38, @KennyG, @Alex_H, @bshand, @Nosybottle, @wku, @nate.arinta5649). In a test on a small top level assembly and a top level folder with 20k files, the new option completed a search in 0.3 minutes. A top-down search took 11.3 minutes. A bottom-up search (on a non-indexed drive) was terminated after an hour.
Fixed an issue where a Top Level search with multiple folders was not finding all related files (Thank you @MonkTheOCD_Engie).
Added a Configuration Tab option Include part copies in search results. Disabling
the option can eliminate extraneous files from being reported in some
cases. (Thank you @n0minus38)
Added a flag to detect when the file list goes out of date. It is set when any change occurs to the file selection or filter inputs. As a visual indicator, the Update Button turns orange.
Added a check to ensure the file list is up to date before processing can begin.
Fixed an issue where sketches, and PMI dimensions and annotations were not hidden (Thank you @tempod (github)).
Fixed an issue where etches were being hidden.
Added PMI Update all. Fixed an issue where PMI Update All was causing the flat pattern to become out of date.
Fixed an issue where the file count was incorrect for a multi-folder search.
Contributed by @Fiorini (GitHub: @farfilli). Thank you!
The new interface is much more flexible, organized, and colorful than ever! Generate your list of files from folders, sub folders, top-level assemblies and selected folders (Thank you @MONKTheOCDEngie!), lists, drag-and-drop, and more. Pick any number of each, in any combination.
If you select one or more files in the list, there's now a Shortcut Menu that lets you open the files in Solid Edge, view them in File Explorer, start processing them in Housekeeper, or exclude them from the list.
You'll also notice new icons throughout. These are taken from standard Windows and Solid Edge libraries and you'll recognize them instantly. If there's one you don't know, a tooltip pops up to tell you what it does.
Home Tab
Selection toolbar
Filter toolbar
Shortcut menu
Contributed by @daysanduski. Thank you!
It's at the very top of this page. Pretty fun, huh?
Contributed by @Fiorini (GitHub: @farfilli). Thank you!
Eliminate the dependency on the external program ffmpeg.exe for image files.
Changed error handling to be more consistent with Housekeeper.
Added a new sample program to the HousekeeperExternalPrograms repo.
The program, ChangeToInchAndSaveAsFlatDXF.vbs,
is a more complete VBScript example.
It shows how to return an ExitCode,
handle error messages and parse the defaults.txt file.
It sets off space for user code and shows how to do error handling.
Practically every line has comments describing what it does.
At the bottom of the file are helpful links to get you started writing your own VBScript files, using nothing more than a text editor! (Thank you again @[Derek G]!)
Improved file link traversal performance in Bottom Up mode approx 10X (Thank you @Fiorini). Unfortunately, Where Used performance is not affected.
Changed to a year-based numbering scheme (Thank you @bshand!).
Updated the program title bar so you can easily check which version you are running.
Renamed from Readme to Help. Now hosted on GitHub, it features a more legible (and bigger) font and lots of pictures (Thank you @Fiorini!).
For quick navigation, it also features a built in Table of Contents. (It's the icon next to README.md shown in the image below.)
Also updated and expanded the File Selection and Filtering Sections. Added sections on Collaborators, User Feedback, and Helping Out.
Implemented a way for volunteers to contribute to Housekeeper by testing the program before an upcoming release.
For this round, we had four volunteers: @n0minus38, @JayJay101, @Cimarian_RMP, and @xenia.turon. Thank you one and all!
Because of their work, we made fifteen new commits to the master branch, fixed six bugs, improved the documentation, and tested two release candidates.
You're welcome to join us for the next release! Beta testing is nothing more than conducting your own workflow on your own files and telling me if you run into problems. It isn't meant to be a lot of work. The big idea is to make the program better for you and me and everyone else!
To sign up message me, RobertMcAnany, on the Solid Edge Forum.
Created a repo called ToyProject for anyone who wants to get started collaborating on Housekeeper. It has links to GitHub's own guides, as well as detailed instructions on how to make your first contribution!
Fixed an issue with Use subdirectory formula when the file contains properties with no assigned name (Thank you @n0minus38). Applied the same fix to Property find/replace.
Fixed another issue with Use subdirectory formula when the formula contains illegal characters for the file system. (Thank you again @n0minus38). See details on the Readme Tab, Assembly Save As section.
In the GETTING HELP section, added instructions on how to subscribe to update notifications and/or become a beta tester.
In the INSTALLATION section, added instructions on how to copy settings files from an earlier release to a new one.
Added the ability to run VBScript files (Thank you @Derek G). These are simple text files that do not require the user to install/learn Visual Studio.
Added an option to automatically save the file after the macro runs (Thank you @Chris42). This opens up the use of Run external program to many macros that were not designed with Housekeeper in mind.
Added new sample code to the HousekeeperExternalPrograms repo. https://github.com/rmcanany/HousekeeperExternalPrograms
-- BreakExcelLinks and AssemblyReport shows two examples of VBScript code (Thank you @Derek G, @wku).
-- FitIsoView shows how to parse Housekeeper's defaults.txt file.
Added an option to not display graphics during processing (Thank you @Jason1607436093479). Speed up is approximately 2X. One possible drawback is you don't look nearly as busy when your boss walks up and sees you playing on your phone.
Added the ability to 'expose' entries in the variable table (Thank you @MonkTheOCDEngie). Also added a check for variable presence. The variables are entered in a comma-delimited list on each task tab, e.g., Flat_Pattern_Model_CutSizeX, Flat_Pattern_Model_CutSizeY, Mass.
Added a task to check for the presence of a parts list in a Draft file.
Added an output directory option, Use subdirectory formula (Thank you @SeanCresswell). The formula is a combination of free text and variable names. The variable name format is similar to Property Text in a Callout, for example LASER_%{System.Material}_%{Custom.Material Thickness}. For more information, in particular for Draft files, see the Readme for Save As.
Added .png as an output format. Since Solid Edge does not support it (as of SE2021), the file is first saved as a .jpg, then converted. The converter is the open source image utility ffmpeg, which is included with Housekeeper. You can read more about it here: https://ffmpeg.org/about.html
Added an option, Save as image -- Crop to model size. The output is saved with the aspect ratio of the model, rather than the window. The option is found on the Configuration tab.
Combined the three versions of Save As Sheetmetal into one. The previous functionality is covered by two new file output options, DXF Flat (*.dxf) and PDF Drawing (*.pdf).
Renamed from the confusing Move drawing to new template. Note, the name has changed, but the program still moves everything from the old file to a new one created using the template specified on the Configuration tab.
Fixed an issue where dimensions were copied to the working sheet from section and detail views (Thank you @Bob Henry, @MonkTheOCDEngie).
Fixed an issue where compound weld symbols did not transfer correctly (Thank you @Bob Henry).
Added > and < to the comparison choices. These are mainly intended for dates and numbers (see next), but can be used for any property.
Enhanced the handling of dates and numbers by attempting to convert them into their native formats. Previously they were treated as text. Note this is somewhat experimental. If you find something that doesn't work correctly, please speak up.
Dates are converted to the format YYYYMMDD. That is the format for the Value that must be used on the Property Filter dialog.
Many numbers, notably those exposed from the variable table, include units. The program needs to strip them off before comparing. Currently only distance and mass units (in, mm, lbm, kg) are handled. Please ask if you need others.
If errors occur during processing, the log file is automatically opened in Notepad (Thank you @Martin Bernhard). Previous behavior was to simply notify the user of its location. The file is still saved to the input directory.
Changed from a text box to a combo box. Keeps the user from having to remember the sometimes arcane wildcard syntax. Added the ability to delete entries that are no longer needed.
Each input option is now disabled unless a selected task requires it. This makes it easier to see what options need the user's attention.
The first time Housekeeper is launched, focus is given to the Readme tab.
Added a link to the Solid Edge Community Forum for user feedback.
Added a better explanation of the TODO list and its use.
Fixed an issue where Top down search crashes if FastSearchScope.txt is blank (Thank you @JayJay101).
Fixed an issue where Sync Used Sketches were reported as underconstrained.
Not saving the file, or cancelling processing, is no longer reported as an error in the log file.
Added the ability to do a simple drawing border replacement.
Unlike the similar task 'Move drawing to new template', this only replaces the background sheet. It does not attempt to update styles or anything else.
Added the ability to update Sheetmetal Design For Cost properties (Thank you @MonkTheOCD_Engie).
An annoyance of this command is that it needs to open the DesignForCost Edgebar pane, but is not able to close it. The user must manually close the pane in a subsequent Sheetmetal session. The state of the pane is system-wide, not per-document, so closing it is a one-time action.
Added options for dimetric and trimetric views. Previously only isometric was supported. The option is set on the Configuration Tab.
Moved the 'Hide constructions' functionality to its own task. Previously it was part of the 'Fit iso view' task.
Fixed an issue where some construction elements were not hidden correctly in assemblies (Thank you @Fiorini).
For model files, added bitmap image output formats.
For draft files, added an optional watermark. It can be positioned and scaled as desired. The original file is unchanged.
The log file now reports which material properties were updated. Previous behavior was to simply state that an update had occurred.
Disabled checking the seVSPlusStyle property.
Fixed an issue where existing view styles were sometimes incorrectly marked 'in use' and could not be changed.
Fixed an issue where the Color Manager base styles were not updated.
Fixed an issue where a tilde '~' in the file name caused an error.
Added a check for path names exceeding the maximum length.
Changed the font to match that of the file list box. Previously it was set to the system default.
Added a task to open a file and save it in the current version.
Added detection of indexed drives for bottom-up searches (Thank you @Jean-Louis). Requires a valid Fast Search Scope filename. See Readme for details.
Added a filter to avoid processing Family of Parts master and unrelated child documents.
Added the ability to override several Windows printing defaults (Thank you @n0minus38).
Added controls for Solid Edge-specific printing options.
Fixed an issue where the print options were not saved between sessions.
Added user feedback on Teamcenter managed files (Thank you @[mike miller]).
Added an entry on some printing limitations and workarounds.
Added the ability to launch a Console App from within Housekeeper. The idea is to be able to customize tasks to your site-specific requirements.
The Console App works on a single Solid Edge file. Housekeeper serves up files one at a time for processing. It handles the batching, filtering, error reporting, etc.
Several rules on the program implementation apply. See details and examples at https://github.com/rmcanany/HousekeeperExternalPrograms
If you could use this, but are not the programming type, your VAR might be willing to help. If not, you could try waving around a little bit of money on this forum. It may well bring someone to the rescue.
Added the ability to bring up files one at a time for manual editing. An always-on-top dialog box lets the user signal when they are finished and ready for the next file. The main idea is to allow the user to fix errors, such as missing flat patterns, that are not easily accomplished automatically. Some rules apply. See the README tab for details.
Added the ability to create a list of files in which errors were detected. This list can be used as a file search option on subsequent runs. It is intended mainly to work as a preprocessor for Interactive Edit, but can be used with any task.
Added the ability to search properties with a wildcard pattern. It is implemented with the VB Like operator, which is similar to the old DOS wildcard search, but with a few more options. For details and examples, see https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/operators/like-operator.
Added the ability to narrow the file listing based on file type. Also added a wildcard search option.
Added a task to find missing drawings for model files. A current limitation is that the drawing name and directory must both be the same as the model file.
Added a task to edit property values. It searches for text in the defined property and replaces it if found.
The search is not case sensitive, the replacement is. For example, say the search is aluminum, the replacement is Aluminum, and the property value is ALUMINUM 6061-T6. The new value will be Aluminum 6061-T6.
Made Save As more generic by having the user specify the file type from a ComboBox. Previously, each file type had its own task.
Added the ability to save a sheetmetal flat pattern as a DXF file. Previously, this function was combined with the task 'Save Laser DXF and PDF'.
Added the ability to print draft files.
Fixed an issue where the file list did not update correctly under certain conditions. Also added a pre-process check to verify that all files on the list still exist on disk.
Added a top-level assembly file search option (Thank you @Jean-Louis). The search can be conducted in one of two ways, bottom up or top down.
Bottom up is meant for general purpose directories (e.g., \\BIG_SERVER\huge list of files\).
Top down is meant for self-contained project directories (e.g., C:\Projects\Project123\). A top down search can optionally report files with no links to the top level assembly.
See the README tab for more information.
Added a property filter search. You identify a condition consisting of a property, a comparison, and a value (e.g., Material contains Steel). Only those files matching the condition are processed.
System or custom properties can be searched. Multiple conditions can be included. Filters can optionally be named, saved, modified, or deleted.
Each condition is assigned a variable name, (A, B, ...). The default filter formula is to match all conditions (e.g., A AND B AND C). You can optionally change the formula (e.g., A AND (B OR C)).
See the Property Filter README tab for more information.
Added extra help text on the README tab for tasks where the label did not fully explain the action (Thank you @bshand).
Added a section to the README, listing known issues and possible workarounds.
Improved the behavior of the file list select set. Previously, the select set was cleared whenever a task option was changed. Now the select set is preserved whenever possible.
Previous behavior was to always save. All other information, such as input directory and template locations, is still always saved.
Previous behavior was to always allow.
Fixed an issue where the README tab did not scroll correctly.
Fixed an issue where Move drawing to new template failed on broken-out section views.
This new task replaces Update drawing border from template and Update dimension styles from template. It is an improvement because any Styles you modify in your template (even ones I don't know about) will be present in the updated Draft file.
Added for Assembly, Part and SheetMetal files.
Added for Draft files
Changed file listbox to multi-column and improved the sort order.
Fixed an issue where form controls were not postioned correctly when the main form was resized.










