Advanced Customization > Business Logic Customization > Customizations for PDM > Customizing the Parameters in the Download Service
  
Customizing the Parameters in the Download Service
Windchill provides a server-side delegate that can be used to insert parameters into a Creo Parametric model upon download. This mechanism can be used to pass information from the server down to Creo Parametric, where it can be used like any other Creo Parametric parameter (for example, to place information on drawing forms). Parameters beginning with “PTC” or “PROI” are regarded as reserved system parameters and cannot be propagated by the customization. If they are added in the customization, they are ignored by the download service.
* 
This functionality is applicable to all Windchill Workgroup Managers integrating with 3rd party CAD tools
* 
The customized parameters are provided to the client upon download and, unlike system parameters such as PTC_WM_ITERATION, are not updated in the Creo Parametric session or the local cache after a Windchill operation (for example, check in).
For example, if a customized parameter is assigned the value of the CAD document number, its value is provided to the client upon model download. If the CAD document is later renumbered, the value in the Creo Parametric session or the client cache will not be automatically updated.
The Windchill service delegate mechanism is used to allow the customization. The following steps explain the customization process:
1. Create a Java class that implements the interface ModeledAttributesDelegate. The interface definition is as follows:
package com.ptc.windchill.uwgm.proesrv.c11n;
import java.util.Collection;
import java.util.HashMap;
import wt.util.WTException;
public interface ModeledAttributesDelegate
{
/*
Implement this API to return list of parameters added by
customization along with it's type (customization profile of the
server). For example "WT_CADDOC_NUMBER" custom parameter will
be of type "String.class" (the java class)
*/
// getAvailableAttributes() returns
// HashMap<String, Object> which contains
// HashMap<Attribute name, Attribute type>
HashMap getAvailableAttributes();
/*
This is the API, invoked by the download service on download, to
be implemented for the customization. Create and return a
HashMap where key is input object and value is HashMap of
parameter name - value pairs that must be propagated to Pro/E
part represented by the EPMDocument (input object). Use the
getCADName() API on the EPMDocument to identify the Pro/E part
*/
// getModeledAttributes(Collection docs) returns
// HashMap<input object, HashMap<Attribute name, Attribute
value> HashMap getModeledAttributes(Collection docs) throws
WTException;
}
2. Edit site.xconf file (found in <Windchill>) to add following property to indicate availability of customization service on the server:
<Service context="default"
name="com.ptc.windchill.uwgm.proesrv.c11n.ModeledAttributesDele
gate" targetFile=codebase/service.properties">

<Option cardinality="singleton"
requestor="java.lang.Object"
serviceClass="com.ptc.windchill.uwgm.proesrv.c11n.DefaultModele
dAttributesDelegate"/>

</Service>
Then use the xconfmanager tool to apply the changes to service.properties file (run xconfmanager -p)
Use the path of your class in place of value of serviceClass (that is, replace com.ptc.windchill.uwgm.proesrv.c11n.DefaultModeledAttributesDelegate with the path to your class).
3. Restart the method server.