Part classification import fails due to unmapped CAD attributes in class template

We’re migrating parts from our legacy system and the import is failing when parts include CAD data with attributes that don’t exist in our Agile class templates. The error occurs during part creation when the JavaClient import process tries to map CAD attributes from the source XML to Agile part attributes.

The import log shows:

<Error code="ATTR_NOT_FOUND">
  <Part>MECH-001</Part>
  <CADAttribute>Surface_Finish_RA</CADAttribute>
  <Message>Attribute not found in class template</Message>
</Error>

Our class template configuration has standard mechanical part attributes, but the CAD files from our legacy system contain dozens of custom attributes that were used for manufacturing specifications. We need these attributes to maintain historical data integrity, but creating individual Agile attributes for every legacy CAD property isn’t practical.

The CAD attribute mapping seems to require exact matches between source and target attribute names. Is there a way to configure flexible mapping rules in the JavaClient import, or should we be using a different approach to handle unmapped attributes? We’re on Agile 9.3.4 and have about 15,000 parts to migrate.

I’ve handled several migrations with this exact issue. The problem is that legacy CAD systems often have hundreds of metadata fields that don’t translate cleanly to PLM attribute structures. Your best bet is to implement a three-tier mapping strategy: tier 1 attributes map directly to Agile standard fields, tier 2 attributes map to custom fields you create in the class template, and tier 3 attributes (everything else) get serialized into a single XML or JSON text field called something like “Legacy_CAD_Properties”. This preserves all data without cluttering your Agile schema. The JavaClient import can handle this if you write a custom pre-processor script that transforms your source XML before feeding it to the import process.

The class template configuration needs to be extended before you start the import. You can’t import attributes that don’t exist in the target template. However, creating 50+ custom attributes for every legacy CAD property is definitely not the right approach. Instead, categorize your CAD attributes into essential vs. reference-only. Essential attributes that users will actually search or report on should be added to the template. Reference-only attributes can be stored in a custom text field or attached as a properties file to each part.

You need to create a mapping configuration file that explicitly defines how legacy CAD attributes map to Agile attributes. The JavaClient import doesn’t do fuzzy matching - it requires exact attribute name matches unless you provide a mapping file. Create an XML mapping file that lists source CAD attributes and their corresponding Agile target attributes, then reference this file in your import configuration.