Large assembly viewing requires configuration at multiple levels - server, viewer, and client. Here’s the comprehensive solution:
Large Assembly Rendering: The viewer’s architecture loads assemblies in a single pass by default, which exhausts browser memory on complex models. Enable progressive loading by configuring these properties in wt.properties:
wt.viz.progressiveLoad.enabled=true
wt.viz.progressiveLoad.threshold=200
wt.viz.progressiveLoad.chunkSize=50
This loads assemblies in chunks of 50 components once the total exceeds 200 parts, preventing memory exhaustion.
Viewer Memory Settings: Increase the viewer’s server-side memory allocation to handle large model processing. The visualization worker needs adequate heap space to generate representations:
wt.viz.worker.maxMemory=4096
wt.viz.worker.initialMemory=2048
wt.viz.cache.maxSize=1024
This allocates 4GB max heap to the visualization worker and 1GB for the representation cache, ensuring smooth processing of large assemblies.
Progressive Loading: Configure the viewer to use level-of-detail (LOD) representations and occlusion culling. Edit the viewer configuration XML (viewerConfig.xml in /Windchill/codebase/wt/viz/):
<RenderingOptions>
<LOD enabled="true" levels="3"/>
<OcclusionCulling enabled="true"/>
<SimplificationThreshold components="300"/>
</RenderingOptions>
The viewer will automatically use simplified geometry for components based on viewing distance and visibility.
For the client side, enable lightweight representation mode in the viewer toolbar - this loads proxy geometry instead of full CAD models. The proxies are 80-90% smaller in file size but maintain visual fidelity for review purposes.
Additionally, ensure your visualization worker is generating tessellated representations (PVZ files) automatically. These are optimized for web viewing:
wt.viz.autoGenerate.enabled=true
wt.viz.tessellation.quality=medium
Medium quality provides good visual detail while keeping file sizes manageable.
Finally, implement assembly structure optimization. Large assemblies should be divided into logical sub-assemblies that can be loaded independently. Configure the viewer to support context-based loading where users can select which sub-assemblies to load for their review session.
After these changes, restart the method server and visualization workers. Test with your 500+ component assemblies - they should now load progressively with the first visible components rendering within 30-45 seconds.
This draft is based on general Windchill knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.