Cet article est un peu spécial et fait un détour du côté de la programmation ! Ce guide de migration TopSolid’ADS V7.16 vous propose des astuces pour migrer vos extensions TopSolid V7.15 !
Afin de faire fonctionner notre configurateur 3D, nous tirons pleinement partie de la puissance de TopSolid’ADS (Application Development System), autrement dit, l’API TopSolid qui permet de créer des extensions au sein de TopSolid Design. La sortie récente de TopSolid 2022 (numéro de version: 7.16) apporte son lot de nouveauté, mais aussi, les programmeurs le savent, quelques changements ! Le guide officiel de migration TopSolid ADS se révèle bien utile, mais nous proposons un guide contenant quelques informations supplémentaires qui pourraient vous servir si vous aussi vous opérez une migration de TopSolid’ADS 7.15 vers TopSolid’ADS 7.16 !
Note: tous les exemples ci-dessous sont donnés en C# mais le principe reste le même si vous programmez vos extensions TopSolid en VB.NET.
La méthode GetUserName()
On commence par un changement simple : la méthode TopSolid.Kernel.TX.Pdm.PdmClient.GetUserName()
ne compile plus parce qu’elle prend un nouveau paramètre passé par référence : string outPrincipalName
. Vous pouvez passer une nouvelle variable de type string
comme dans l’exemple ci-dessous:
IPdmClient server = PdmClientStore.CurrentPdmClient;
string firstName = null;
string lastName = null;
string initials = null;
string principalName = null;
server.GetUserName("Alice", out firstName, out lastName, out initials, out principalName);
Mais si vous savez que vous ne vous en servirez pas, les versions récentes de C# permettent d’omettre totalement le paramètre en utilisant le symbole `_`
:
server.GetUserName("Alice", out firstName, out lastName, out initials, out _);
Vous trouverez plus d’informations sur les éléments ignorables dans la documentation de Microsoft.
La méthode MakeQuantityColumnDescriptor()
TopSolid.Cad.Design.DB.Bom.BomColumnDescriptor.MakeQuantityColumnDescriptor()
qui n’est plus disponible dans la version 7.16. Il va falloir maintenant créer ce descripteur manuellement:using TopSolid.Cad.Design.DB.Bom.Columns;
using TopSolid.Cad.Design.DB.Bom.Columns.DocumentProperties;
// Ne compile plus avec TopSolid 7.16
BomColumnDescriptor oldDescriptor = BomColumnDescriptor.MakeQuantityColumnDescriptor();
// Nouvelle methode dans TopSolid 7.16
BomColumnPropertyPrimitive primitive = new BomColumnPropertyPrimitive(null, BomColumnDescriptor.QuantityColumnIdentifier);
BomColumnDescriptor newDescriptor = new BomColumnDescriptor(null, primitive);
Element
que vous voulez affecter comme propriétaire des objets ci-dessus, vous pouvez les passer en paramètre en lieu et place des null
ci-dessus.La méthode ImportPackageAsReplication()
TopSolid.Kernel.TX.Pdm.IPdmClient.ImportPackageAsReplication()
n’existe plus qu’en 2 version et perd sa variante (string, bool)
. C’est à vous de spécifier un nouveau paramètre bool inUpdatesEvenIfConflict
en fonction de vos préférences concernant la résolution de conflits.// Ne compile plus
server.ImportPackageAsReplication(PACKAGE_FILE_FULLNAME, false);
// Compile !
server.ImportPackageAsReplication(PACKAGE_FILE_FULLNAME, false, true);