Migrating to the Multibody Environment
This section describes how to migrate to the Creo Parametric multibody environment.
Overview
PTC introduces multibody part design to improve design productivity, flexibility, and usability.
The existing Creo TOOLKIT application continues to work seamlessly for legacy models and models having a single body. However, you must upgrade to Creo Parametric 7.0.0.0 to use the multibody environment.
To support the multibody environment, Creo Parametric 7.0.0.0 is updated in the following aspects:
•  New APIs are added
•  Some existing APIs are deprecated and are superseded by new APIs
•  Implementation of existing APIs is updated. No visible changes in Creo Toolkit APIs
•  New element trees are added to support new multibody features
•  Some existing element trees are updated.
•  Some enumerated data types and their values are updated
•  Existing structures are updated
To enable you to smoothly migrate your existing Creo TOOLKIT applications, the Creo TOOLKIT APIWizard provides the following APIs to support multibody:
Feature Name
API name
Body Operations
•  ProSolidBodyCreate()
•  ProSolidBodyDelete()
•  ProSolidDefaultBodySet()
•  ProSolidBodyConstructionSet()
Querying Body
•  ProSolidBodiesCollect()
•  ProSolidBodySurfaceVisit()
•  ProSolidDefaultBodyGet()
•  ProSolidBodyStateGet()
•  ProSolidBodyIsConstruction()
•  ProSolidBodyOutlineGet()
•  ProSolidBodyFeaturesGet()
•  ProGeomitemBodyGet()
Interference
•  ProVolumeInterferenceBodiesGet()
•  ProVolumeInterferenceDisplayForBody()
Material Properties
•  ProSolidBodyMaterialSet()
•  ProSolidBodyMaterialGet()
•  ProSolidBodyMaterialGet()
•  ProSolidBodyDensityGet()
•  ProSolidBodyMassPropertyGet()
Sheetmetal
•  ProSolidBodyIsSheetmetal()
Cross-Section
•  ProXSectionExcludeCompGet()
•  ProXSectionItemDataGet()
•  ProXSectionItemFree()
•  ProXSectionItemXhatchStyleGet()
•  ProXSectionItemXhatchStyleSet()
•  ProXSectionItemsArrFree()
•  ProXSectionItemsCollect()
•  ProXSectionOffsetCreate()
•  ProXSectionPlanarCreate()
•  ProXsecMdlnameAlloc()
•  ProXsecMdlnameFree()
•  ProXsecNewXhatchStyleCreateFromName()
•  ProXsectionCompXhatchStyleGet()
•  ProXsectionCompXhatchStyleSet()
•  ProXsecMdlnameNameGet()
•  ProXsecMdlnameNameSet()
•  ProXsecMdlnameSolidOwnerGet()
•  ProXsecMdlnameSolidOwnerGet()
•  ProXsecMdlnameSolidOwnerSet()
Shrinkwrap options
•  ProShrinkwrapoptionsIgnoreconstrbodiesSet()
UDF
•  ProUdfFileIsPreCreo7()
Impact on Existing APIs
You must evaluate the need for using the new APIs based on the logic of your application. The following table lists the names of the existing APIs and respective superseding APIs.
Deprecated API
New API
ProSolidSurfaceVisit()
ProSolidBodiesCollect()
ProSolidyBodySurfaceVisit()
ProPartToProIntfData()
ProPartToProInterfaceData()
ProQuiltdataTypeGet()
ProQuiltdataTypeSet()
ProXsecGeometryCollect()
ProXSectionItemsCollect()
ProXSectionItemDataGet()
ProXsecPlanarWithoptionsCreate()
ProXSectionPlanarCreate()
ProXsecExcludeCompGet()
ProXSectionExcludeCompGet()
ProXsecCompXhatchStyleGet()
ProXsectionCompXhatchStyleGet()
ProXSectionItemXhatchStyleGet()
ProXsecCompNewXhatchStyleGet()
ProXsectionCompXhatchStyleGet ()
ProXSectionItemXhatchStyleGet()
ProXsecCompXhatchStyleSet()
ProXsectionCompXhatchStyleSet()
ProXSectionItemXhatchStyleSet()
ProXsecCompNewXhatchStyleSet()
ProXsectionCompXhatchStyleSet()
ProXSectionItemXhatchStyleSet()
ProXsecCompNewXhatchStyleSetByName()
ProXsecNewXhatchStyleCreateFromName()
/ProXsectionCompXhatchStyleSet()
ProXSectionItemXhatchStyleSet()
ProXsecOffsetCreate()
ProXSectionOffsetCreate()
ProPartDensitySet()
ProMaterialCurrentSet()
ProMaterialPropertySet()
The following points are important to remember:
•  Check instances of deprecated API use.
•  Modify code to use superseding APIs
•  Test the updated application on legacy models and on multibody models.
•  Some of the deprecated APIs work on multibody models if the special configuration option allow_gmb_tkapi is set to yes.
User-Defined Features
With the introduction of bodies in Creo Parametric 7.0.0.0, the following occurs:
•  When creating a part, you can add body references to some features, such as to protrusion and cut features.
•  When creating an assembly, you cannot add body references.
•  UDFs created in an earlier release of Creo Parametricdo not have body references.
•  UDFs created in an assembly in Creo Parametric 7.0.0.0 do not have body references.
For more information about how UDF placement is handled in Creo Parametric 7.0.0.0, refer to the section Multibody support in UDF and Copy feature in the Core: Features chapter.
Update in API Implementation to Support Multibody
Implementation of some APIs is changed. To programmatically select bodies, pass the string 3d_body to the API ProSelect to select bodies.
Update in Existing Element Trees
Some existing features are affected due to the introduction of the multibody features such as creating or adding a body. The following header files are updated:
•  ProShell.h
•  ProRib.h
•  ProSmtDrvSurf.h
•  ProExtrude.h
•  ProRevolve.h
•  ProSweep.h
•  ProHole.h
•  ProRound.h
•  ProChamfer.h
•  ProModifyRound.h
•  ProModifyChamfer.h
•  ProSmtShell.h
The following points are important to remember:
•  Check if the affected features are created in the Creo TOOLKIT application.
•  If you are working in the single body or legacy environment, then no action is required.
•  If you are working in the multibody environment, update the application code and use the updated element trees for the specific features.
•  If you are using an updated version of the Creo TOOLKIT application, perform subsequent testing for multibody models.
New Element Trees for Supporting Multibody Features
To support multibody features, the following header files are added:
•  ProSplitBody.h
•  ProBooleanBodies.h
•  ProRemoveBody.h
•  ProBodyCopy.h
•  ProBodyOpts.h
You can create multibody features using these new feature element trees based on the logic of your Creo TOOLKIT application.
Update to Values of Enumerated Data Types
With the introduction of the multibody environment, the following enumerated values are impacted:
•  PRO_SURFCOLL_ALL_SOLID_SRFS is deprecated
Note
As a result, the functions ProSrfcollectionRegenerate(), ProElementCollectionSet() , and ProSelbufferCollectionAdd() return the error PRO_TK_MULTIBODY_UNSUPPORTED for multibody based models.
•  The new enum values PRO_SURFCOLL_BODY_SRFS and PRO_SURFCOLL_ALL_BODY_SRFS are added.
•  New enum valuePRO_LAYER_BODY is added.
If the enum value PRO_SURFCOLL_ALL_SOLID_SRFS exists in your Creo TOOLKIT application code, then you need to update the code and test the legacy and multibody models.
Impact on Existing Structures
ProQuiltData is updated with a new structure member to support multibody environment. As a result, the function ProPartToIntfData() is impacted.