Component not updating in Layout despite identical VCID and Restart

Description: I am facing a synchronization issue between a Component (.vcmx) and a Layout (.vcmx). I am looking for a way to force an update without re-inserting the component to maintain collaboration and positions.

Steps to Reproduce:

  1. Created a custom component and saved it as a .vcmx file.

  2. Dragged this component into a Layout.

  3. Saved the Layout WITHOUT checking the “Save Components with Layout” option (to keep the layout file size small and maintain external referencing).

  4. Modified the original component file (e.g., changed a script or a property) and saved it.

  5. Reopened the Layout.

The Issue:

  • The component in the Layout does not reflect the changes made to the source file.

  • The Layout file size remains very small, confirming it’s an external reference, not an embedded copy.

  • Restarting the software does not trigger an update.

  • VCID remains identical between the source and the instance in the layout.

Environment:

  • Visual Components Version: [5.0 OLP]

  • OS: Windows 11

Questions:

  1. Where is the “old version” of the component being cached if the Layout file itself doesn’t contain the geometry?

  2. How can I force the Layout to “Reload” or “Sync” with the disk file without deleting and re-dragging the component (which breaks PnP and specific configurations)?

  3. Is there a Python command or a specific setting to clear the ModelCache or force a metadata refresh for external references?

1 Like

VC does not support referenced components like that.

The only thing the “Save Components with Layout” does in practice is whether the geometry features are loaded from the layout or searched by vcid from vcmx files known by the local eCat database.

So if you don’t save components with layout, the layout file contains everything but the (imported mesh) geometries of those components. It will then use this fragile mechanism to get the geometries from somewhere, which may resolve to completely wrong geometry, or more commonly it will just fail to find them at all.

Th underlying reason why it is like this is because VC allows modifying every component in the layout arbitrarily at any time, including from scripts inside the components themselves. Retaining and merging these arbitrary changes to each instance when you want to “refresh” from the original source is practically impossible.