Compile Time Changes

Part Measurements and Generic Codes

DsPrdMeasurementColumn now stores its measurement type as a string:

Old: public dsMeasurementType mType
Old: public str mTypeS
New: public str mType

Replace mTypeS reads with mType. Code that requires dsMeasurementType should convert the string with dsiStrToDsMeasurementTypeEnum().

Both constructors have a new optional package argument:

Old: public constructor(str mType)
New: public constructor(str mType, symbol pkg=null)

Old: public constructor(dsMeasurementType mType)
New: public constructor(dsMeasurementType mType, symbol pkg=null)

Added: public double dsUnitConvertFactor(distanceUnit distUnit, str mTypeS)

class DsPData

The following methods have been removed in DsPData class as they were deprecated or no longer in use.

Removed: public str->(str->(< double, double>)) propagateStretchInfo: copy=null, stream=null, deprecated;

Removed: public void postApplyConstraints(DsiApplyConstraintsEnv env) {
Removed: extend public void verifySyncGroupContainer(): deprecated {
Removed: extend public void specOption(DsSpecOption[] sOptions, Space space, Option o, DsPDataOption pDataOption, int level, bool choosableInCalculation) {
Removed: extend public bool trySetDsProp(Snapper snapper, SetSnapperPropertyEnv env) {
Removed: public str graphicalSpecialCacheKey(Object obj) {
Removed: extend public void generateAdditionalOptionRows(DsiPDataOption dataOpt|, DsPart part, SifEnv env, Space space, bool recurse=true) : deprecated {
Removed: extend public void generateOptionalNoOptionRows(SifEnv env, SFeature f, DsiPDataOption selOpt) {
Removed: extend public void generateOptionalSelOptionRows(SifEnv env, SFeature f, DsiPDataOption selOpt) : deprecated {
Removed: final public void generateSifOptionRows(SifEnv env, Option o, DsiPDataOption pO, int level=0) : deprecated {
Removed: extend public void clearPropagateStretchInfo() : deprecated {
Removed: extend public void updatePropagateStretchValue(str key, str stretchMeasureParam, double length, double delta) : deprecated {
Removed: extend public double propagateStretchValue(str key, str stretchMeasureParam) : deprecated {
Removed: extend public bool symStretch(SymHandle handle, PreCorePropObj owner, str measParam, bool stretchEP, point p, AnimationMouseInfo mi) {
Removed: extend public void apply(DsPData data) {

The following method has been renamed in DsPData class as part of the constraint changes in 17.5.

Modified:
Old: public Bool dbg_forceDsApplyLogic() {
New: public Bool forceDsApplyLogic() {

class DataSymbol

The following methods have been removed in DataSymbol class as they were deprecated or no longer in use. The method completeBuild() is now replaced by buildConnectors().

Removed: extend package DsConnector[] nodeConnectors() {
Removed: extend public bool nodeConnectorExists(point pos) {
Removed: extend public bool completeBuild(bool defaultMats=true) {

Some connector-related interfaces are now changed to public. Certain unused method arguments are also removed.

Old: extend public void buildConnectors(point{} pos, bool updateSpace) {
New: extend public void buildConnectors(bool updateSpace) {

Old: extend public void buildConnectors(point{} pos) {
New: extend public void buildConnectors() {

Remove uninstalled catalogs

The following interface changes have been made to facilitate the functionality to remove related catalog files when an extension is uninstalled.

cm.abstract.dataSymbol.registerCatalogs.cm

Old: public void registerDsEmbeddedCatalog(int cid, str dbFile, str{} offlinePrdCatalogs=null) {
New: public void registerDsEmbeddedCatalog(int cid, str dbFile, str{} offlinePrdCatalogs=null, symbol sourcePkg=#:package : caller eval) {

Also some interfaces were updated in the cm.abstract.dataSymInterface and cm.extension packages as part of this change. Please refer to the documentation for those changes as well.

Runtime/Behavior Changes

Part Measurements and Generic Codes

Configura SIF rows generated for data-symbol parts now include VO (volume), WD (width), DP (depth), and HT (height). A value from Part.genericCode() is written as CG; TAG2 supplies CG only when the part has no generic code.

OFDA measurement values are now emitted through Part.xmlMeasurement(). The type, measurement system, and unit remain XML attributes, while numeric values are normalized through the shared conversion helper.

OFDA XML 04.02.00 Export Compatibility

DsPart.xmlOptions() now writes OmitOnOrder before the option price. This changes the order of elements in exported OFDA XML without changing their values. Extensions or integrations that compare or parse option elements positionally must update for the 04.02.00 ordering. See the cm.abstract.ofdaXml migration notes for the other OFDA XML output changes.