🪤 Weldment Feature Property - Why do they exist?

image
I’ve been digging into the behavior of the Weldment feature (the very first node that appears in the tree when you turn a part into a weldment) and found some interesting behavior regarding its properties.

The Observation

Unlike “Sheet-Metal” feature in sheet metal parts, the “Weldment” feature doesn’t have an “Edit Feature” definition. However, it does have a Properties window. This window looks almost identical to the Weldment Cut-List properties, but without the specific list of items. It seems to act as a “Global” or “Parent” property container for the weldment environment.

The Experiment

I conducted a few tests to see how these properties behave:

  1. Step 1: Before creating any structural members, I added a custom property to the Weldment feature named TestPRP with the value 2222.
  2. Step 2: I created a structural member, which generated a Cut-List-Item1.
  3. The Result: Cut-List-Item1 automatically inherited the property TestPRP = 2222.
  4. Step 3: I added another Cut-List-Item2 which already has property TestPRP = 4444 in .prtdot and the value from Weldment feature is ignored, I got 4444
  5. I created several configurations and changed the values ​​by switching to different configurations - properties cannot have different values ​​for different configurations, the value is one for the entire file.

Key Findings

  • One-time Sync: Properties are copied from the Weldment feature to the Cut-List item only at the moment the Cut-List item is created.
  • No Link: If you change the property in the Weldment feature later, the Cut-List items do not update. The link is lost immediately after creation.
  • Template Potential: This is a great way to “pre-seed” properties in a Part Template. If you have standard properties you want every single cut-list item to have by default, you can define them in the Weldment feature of your .prtdot, as higher priority

The API Question

I’m curious about accessing this via the API. Usually, we access properties via the CustomPropertyManager of a specific Cut-List item or the File itself.

  • Can we get the CustomPropertyManager specifically for the Weldment feature node itself?
  • Is it possible to access it similarly to File-level properties (e.g., using an empty string for configuration .CustomPropertyManager(""))?

Does anyone use this functionality in their workflow? Beyond pre-populating templates, is there any hidden logic or “Pro” use case for these properties that I might be missing? Or is this just a legacy artifact of how SOLIDWORKS handles cut-lists?

The Feature interface has a CustomPropertyManager property which gives you access to some of the custom property info for the Weldment feature. My tests indicate that you can get the property names, types, etc, but you cannot get the actual value that will be passed to any newly created cut list items.

One really interesting thing is that if you have a Structure System weldment:

you can delete the Weldment feature entirely. The cut list items will disappear and are replaced by simple solid bodies wit no available cut list properties:

However, if you then insert a new Weldment feature, all the original properties come back. So the information is stored somewhere independently from the Weldment feature.

From the help we can find out concise but cutting information:

Weldment Feature

The weldment feature is not a feature in the same sense as a fillet or an extrude. Instead, it sets up a design functionality environment. The weldment feature designates the part as a weldment and enables the weldment environment.

The weldment feature:

  • Activates the multibody environment by clearing the Merge result check box in the PropertyManagers of features that add material.
  • Acts as a placeholder for common custom properties that are inherited by all cut list items.

I understand the second point to mean that adding this feature activates functionality that already exists in the model. Accordingly, this aligns well with the properties that “came to life” out of nowhere. They simply weren’t available without the feature, but they were there.

Set swFeat = swModel.FeatureManager.InsertWeldmentFeature()
You can insert as many features as you like this.
But the properties are duplicated across them all that is, they’re all the same.

Add3 doesn’t work with Custom Manager, I was able to use only Add2 successfully.
sss = swCustPropMgr.Add2("B", swCustomInfoType_e.swCustomInfoText, "AAAA")