Skip to content

Recettes

130 recettes pre-construites dans RecipeTool. Le LLM selectionne par nom via topsolid_run_recipe -- aucune generation de code necessaire.

Tableau interactif

Recherche, tri par colonne et filtres par categorie/mode.

112/112 recettes83 READ26 WRITE3 ASK
Recette ↑Description ↕API ↕
activer_virtuel_batchWRITEBatchActive le mode virtuel sur tous les documents non-virtuels du projet. Les documents virtuels ne sont pas sauvegardes physiquement — ils existent uniquement en memoire.Documents.SetVirtualDocumentMode(true) en boucle
activer_virtuel_documentWRITEDocumentActive le mode virtuel sur le document courant uniquement.Documents.SetVirtualDocumentMode(docId, true)
attribut_affecter_calqueWRITEAttributsDeplace un element (shape, esquisse...) vers un calque existant. Match par nom partiel sur l'element et le calque.Layers.SetLayer — value = nom_element:nom_calque
attribut_lire_couleurREADAttributsLit la couleur RGB de chaque shape du document. Retourne "pas de couleur" si la couleur est heritee du materiau (comportement par defaut TopSolid).Elements.HasColor → GetColor
attribut_lire_couleurs_facesREADAttributsLit les couleurs face par face de chaque shape. Utile quand un shape a des faces colorees individuellement (peinture selective, zones fonctionnelles).Shapes.GetFaces → Elements.GetColor par face
attribut_lire_toutREADAttributsVue complete des attributs visuels de tous les elements : couleur RGB, transparence (0-1), calque (layer) affecte, et visibilite. Donne un apercu global de l'apparence de la piece.Elements.GetColor/Transparency + Layers.GetLayer
attribut_lire_transparenceREADAttributsLit le niveau de transparence de chaque shape : 0.0 = totalement opaque, 1.0 = totalement invisible. Les shapes sans transparence explicite sont opaques par defaut.Elements.HasTransparency → GetTransparency
attribut_lister_calquesREADAttributsListe les calques (layers) definis dans le document, par nom. Les calques TopSolid permettent d'organiser et de masquer/afficher des groupes d'elements.Layers.GetLayers
attribut_modifier_couleurWRITEAttributsChange la couleur d'un shape. Si le document contient un seul shape, la couleur est appliquee directement. Si plusieurs shapes, TopSolid ouvre une boite de selection pour que l'utilisateur pointe le shape voulu.Elements.SetColor — value = R,G,B (ex: 255,0,0 pour rouge)
attribut_modifier_couleur_toutWRITEAttributsChange la couleur de TOUS les elements du document d'un coup, sans selection. Applique la meme couleur RGB a chaque shape dont la couleur est modifiable.Elements.SetColor en boucle — value = R,G,B
attribut_modifier_transparenceWRITEAttributsChange la transparence d'un shape. Si plusieurs shapes, TopSolid demande une selection interactive. Valeur entre 0.0 (opaque) et 1.0 (invisible). Pratique pour voir l'interieur d'un assemblage.Elements.SetTransparency — value = 0.0 a 1.0
attribut_remplacer_couleurWRITEAttributsRecherche et remplace : trouve tous les elements ayant une couleur source et les passe a une couleur cible. Ex: remplacer tout le vert (0,128,0) par du rouge (255,0,0) en un seul appel.Filtre couleur → SetColor — value = R1,G1,B1:R2,G2,B2
audit_assemblageREADAuditAudit complet d'un assemblage : liste des pieces, inclusions, occurrences, masse totale, structure. Equivalent d'une fiche d'identite de l'assemblage.Assemblies.GetParts + GetOccurrences + masse systeme
audit_pieceREADAuditAudit complet de la piece : proprietes PDM (nom, designation, reference, fabricant), nombre et liste des parametres, shapes avec nombre de faces, masse, volume, surface et materiau. Rapport synthetique en un appel.Pdm + Parameters + Shapes + parametres systeme
auditer_designations_drivers_batchREADAuditListe les designations des parametres drivers de toutes les familles du projet pour inspection visuelle. Detecte les fautes d'orthographe, les incoherences de formulation entre familles.GetCatalogColumnParameters → GetDescription sur toutes les familles
auditer_noms_parametresREADAuditAnalyse la syntaxe des noms de parametres du document : detecte les melanges de convention (CamelCase vs snake_case), les doublons proches (ex: "longueur" et "Longueur"), les caracteres speciaux. Recommandations d'harmonisation.Analyse syntaxique regex des noms
auditer_noms_parametres_batchREADAuditMeme audit que auditer_noms_parametres mais sur TOUS les documents du projet. Rapport global des incoherences de nommage a l'echelle du projet.Iteration complete + analyse syntaxique
chercher_documentREADNavigationRecherche un document par nom dans le projet (match partiel, type CONTAINS insensible a la casse). Retourne nom, designation et reference de chaque resultat. Utile quand on connait un bout du nom.Pdm.SearchDocumentByName — value = texte a chercher
chercher_documents_modifiesREADNavigationListe les documents du projet qui ont ete modifies mais pas encore sauvegardes (flag dirty). Utile avant un export batch ou une fermeture de projet pour eviter de perdre des modifications.Documents.IsDirty en boucle
chercher_dossierREADNavigationRecherche un dossier par nom dans le projet (match partiel). Retourne le chemin et le contenu du dossier trouve.Pdm.GetConstituents + filtre — value = texte
chercher_pieces_par_materiauREADNavigationListe toutes les pieces du projet avec leur materiau et leur masse. Filtre optionnel sur le nom du materiau (ex: "Acier"). Utile pour verifier les affectations materiaux ou calculer la masse totale par materiau.Parameters $Mass + materiau — value = filtre optionnel
comparer_entites_documentsREADComparaisonCompare les entites geometriques (shapes, esquisses, points 3D, reperes 3D) entre deux documents. Montre les differences de quantite par type d'entite.Comptage Shapes/Sketches/Points/Frames — value = nom autre doc
comparer_operations_documentsREADComparaisonCompare l'arbre de construction entre le document courant et un autre document du projet. Montre les operations ajoutees, supprimees ou presentes dans les deux avec des noms differents.Operations.GetOperations diff — value = nom autre document
comparer_parametresREADComparaisonCompare les parametres du document actif avec ceux d'un autre document du projet. Affiche les differences de valeur (A vs B), les parametres presents uniquement dans l'un ou l'autre. Ideal pour comparer deux variantes d'une piece.Diff par nom de parametre — value = nom autre document
comparer_revisionsREADComparaisonCompare les parametres de la revision courante avec la revision precedente du meme document. Montre les valeurs qui ont change entre les deux revisions. Utile pour tracer les modifications.Pdm.GetMajorRevisions → diff GetParameters
compter_documents_par_typeREADNavigationCompte les documents du projet groupes par type d'extension : .TopPrt (pieces), .TopAsm (assemblages), .TopDft (mises en plan), etc. Retourne un tableau type → quantite.Pdm.GetType sur chaque doc
compter_lignes_nomenclatureREADNomenclatureCompte les lignes actives et inactives de la nomenclature. Les lignes inactives sont masquees dans le plan mais toujours presentes dans les donnees.GetRows + IsRowActive
compter_pieces_assemblageREADAssemblageCompte les pieces groupees par type (reference unique) avec quantites. Ex: "Vis M8×30 : 4, Plaque support : 2, Equerre : 1 → Total 7 pieces". Vision nomenclature simplifiee.GetParts groupe par GetInclusionDefinitionDocument
corriger_drivers_familleWRITEFamilleGenere automatiquement une designation pour les drivers qui n'en ont pas, en deduisant du nom du parametre : decoupe le CamelCase en mots, remplace les underscores par des espaces, met une majuscule.Elements.SetDescription auto-genere depuis nom
detecter_assemblageREADAssemblageVerifie si le document courant est un assemblage TopSolid. Si oui, liste toutes les pieces (parts) contenues. Premiere etape avant d'explorer la structure d'un assemblage.Assemblies.IsAssembly → GetParts
detecter_familleREADFamilleVerifie si le document est une famille TopSolid. Indique si elle est explicite (catalogue avec codes predetermine) ou implicite (parametrique, les variantes se creent a la volee). Les familles sont le mecanisme de bibliotheque standard de TopSolid.Families.IsFamily + IsExplicit
detecter_mise_a_platREADDepliageVerifie si le document contient un depliage tolerie (flat pattern). Le depliage est le contour plat obtenu en "deroulant" une piece en tole. Liste les plis detectes. Specifique a la tolerie TopSolid.Detection operations FlatPattern
detecter_mise_en_planREADMise en planVerifie si le document courant est une mise en plan TopSolid (Drafting). Retourne le nombre de vues, le format papier et les informations de base. Premiere verification avant d'explorer un plan.DraftingDocuments.IsDraftingDocument
detecter_nomenclatureREADNomenclatureVerifie si le document contient une nomenclature (BOM - Bill of Materials). Retourne le nombre de lignes. La nomenclature est generalement dans la mise en plan d'un assemblage.Nomenclatures.GetNomenclatures
exporter_batch_stepREADExportExporte TOUTES les pieces et assemblages du projet en STEP, un fichier par document, dans un dossier de destination. Utile pour livrer un projet complet a un partenaire utilisant un autre logiciel CAO.Documents.Export en boucle — value = dossier destination
exporter_dxfREADExportExporte en DXF (format AutoCAD). Principalement utilise pour les mises en plan 2D, les profils de decoupe laser ou les plans d'atelier. Compatible avec tous les logiciels 2D.Documents.Export DXF — value = chemin (optionnel)
exporter_igesREADExportExporte en IGES, format historique d'echange CAO encore utilise dans l'aeronautique et l'automobile. Moins precis que STEP mais plus largement supporte par les anciens systemes.Documents.Export IGES — value = chemin (optionnel)
exporter_nomenclature_csvREADExportExporte le contenu de la nomenclature (BOM) du document en format texte avec colonnes separees par tabulation. Permet d'importer la BOM dans Excel ou un ERP.Nomenclatures lecture → format texte
exporter_pdfREADExportExporte en PDF. Utilise principalement pour les mises en plan (plans de fabrication, plans d'ensemble). Genere un document lisible sans logiciel CAO.Documents.Export PDF — value = chemin (optionnel)
exporter_stepREADExportExporte le document actif en format STEP (AP214), le format universel d'echange entre logiciels CAO (Catia, SolidWorks, NX...). Retourne le chemin du fichier cree. Le chemin est optionnel (defaut = dossier temp).Documents.Export STEP — value = chemin (optionnel)
exporter_stlREADExportExporte en STL (maillage de triangles). Format standard pour l'impression 3D, le prototypage rapide et la visualisation web. Converti la geometrie exacte en facettes triangulaires.Documents.Export STL — value = chemin (optionnel)
invoquer_commandeWRITEDocumentExecute une commande du menu TopSolid par son nom interne. Attention : certaines commandes ouvrent des dialogues interactifs. A utiliser quand aucune recette dediee n'existe pour l'action souhaitee.Application.InvokeCommand — value = nom commande
lire_boite_englobanteREADPhysiqueRetourne la boite englobante du modele : coordonnees min/max en X, Y, Z (en mm) plus les dimensions calculees Longueur × largeur × hauteur.Parameters systeme bounding box
lire_cas_emploiREADNavigationWhere-used : recherche tous les documents du projet qui referencent le document courant. Trouve les assemblages parents, les mises en plan associees. Indispensable avant de modifier une piece partagee.Pdm.SearchMajorRevisionBackReferences
lire_codes_familleREADFamilleListe les codes (variantes) d'une famille explicite. Chaque code correspond a une configuration du catalogue. Ex: pour une famille de vis, les codes sont M6×20, M8×30, M10×40, etc.Families.GetCodes
lire_colonnes_nomenclatureREADNomenclatureListe les colonnes de la nomenclature : Repere, Designation, Quantite, Reference, Materiau, Masse... La structure depend du modele de nomenclature configure dans TopSolid.Nomenclatures.GetColumns → GetColumnName
lire_contenu_nomenclatureREADNomenclatureLit le tableau complet de la nomenclature : toutes les lignes avec toutes les cellules. Format texte tabulaire lisible. C'est le contenu brut de la BOM tel qu'il apparait dans le plan.GetRows → GetCellValue par colonne
lire_contenu_projetREADNavigationParcourt recursivement toute l'arborescence du projet : dossiers, sous-dossiers et documents a chaque niveau. Affiche l'indentation par profondeur et le total de dossiers et documents trouves.Pdm.GetConstituents (recursif)
lire_densite_materiauREADPhysiqueCalcule la densite du materiau (kg/m³) a partir du rapport masse/volume des proprietes systeme. Utile pour verifier que le bon materiau est affecte (acier ~7800, alu ~2700, plastique ~1200).masse / volume depuis params systeme
lire_designationREADPDMLit la designation du document actif, c'est-a-dire la description fonctionnelle de la piece ou de l'assemblage (ex: "Bride de serrage", "Support moteur"). Retourne "(vide)" si le champ n'est pas renseigne dans les proprietes PDM.Pdm.GetDescription(pdmId)
lire_dimensions_depliageREADDepliageRetourne les dimensions du contour deplie (flan plat) : longueur et largeur en mm. Ce sont les dimensions de la tole brute a decouper avant pliage.Parametres systeme de depliage
lire_dimensions_pieceREADPhysiqueLit les dimensions principales de la piece depuis les proprietes systeme : Height (hauteur), Width (largeur), Length (longueur) et Box Size en mm. Ce sont les dimensions de la boite englobante orientee.Parameters systeme $Height, $Width, $Length, $Box Size
lire_echelle_mise_en_planREADMise en planLit l'echelle globale du plan et l'echelle individuelle de chaque vue. L'echelle globale definit le ratio par defaut (ex: 1:2), les vues peuvent avoir leur propre echelle.GetDocumentScale + GetViewScale par vue
lire_fabricantREADPDMLit le fabricant ou fournisseur associe au document. Utile pour les pieces achetees ou sous-traitees. Retourne "(vide)" si non renseigne.Pdm.GetManufacturer(pdmId)
lire_format_mise_en_planREADMise en planRetourne les informations du format papier : taille (A4, A3, A2...), dimensions en mm, marges, orientation (paysage/portrait), nombre de pages.GetSheetSize / Margins / PageCount
lire_historique_revisionsREADNavigationAffiche la timeline complete des revisions du document : revisions majeures et mineures avec auteur, date et commentaire. Permet de tracer l'evolution du document dans le temps.Pdm.GetMajorRevisions + GetMinorRevisions
lire_masse_volumeREADPhysiqueRetourne la masse (kg), le volume (affiche en mm³) et la surface (affiche en mm²) du document actif depuis les proprietes systeme TopSolid. Necessite qu'un materiau soit affecte pour que la masse soit calculee.Parameters systeme $Mass, $Volume, $Surface Area
lire_materiauREADPhysiqueRetourne le nom du materiau affecte a la piece et sa densite calculee. Si aucun materiau n'est affecte, la masse sera nulle.Parameters systeme $Mass + $Volume
lire_moments_inertieREADPhysiqueLit les moments principaux d'inertie en X, Y et Z depuis les proprietes systeme. Utilise en calcul de resistance des materiaux et dimensionnement mecanique.Parameters systeme $Principal Moment of Inertia X/Y/Z
lire_nomREADPDMLit le nom unique du document dans l'arborescence projet TopSolid (ex: "BRD-001", "Plaque_base"). C'est l'identifiant visible dans l'explorateur de projet, distinct de la designation.Pdm.GetName(pdmId)
lire_occurrencesREADAssemblageListe les occurrences visibles de l'assemblage avec leur document de definition. Les occurrences sont les representations dans l'arbre, les inclusions sont les operations sous-jacentes.Assemblies.GetOccurrences → GetOccurrenceDefinitionDocument
lire_operationsREADGeometrieAffiche l'arbre de construction complet : liste de toutes les operations (features) avec nom et type (Extrusion, Revolution, Pocket, Fillet, Chamfer, Pattern, etc.). C'est l'historique de modelisation de la piece.Operations.GetOperations → Elements.GetTypeFullName
lire_parametre_reelREADParametresLit la valeur d'un parametre reel par son nom (match partiel insensible a la casse). La valeur retournee est en SI : 0.050000 signifie 50 mm, 0.785398 signifie 45 degres.Parameters.GetRealValue — value = nom du parametre
lire_parametre_texteREADParametresLit la valeur d'un parametre texte par son nom (match partiel). Les parametres texte servent souvent pour les references, noms de materiaux ou commentaires embarques dans le modele.Parameters.GetTextValue — value = nom du parametre
lire_parametresREADParametresListe tous les parametres du document actif avec pour chacun : nom, valeur et type (Real, Integer, Boolean, Text). Les valeurs reelles sont en SI (metres, radians). C'est la vue complete de l'arbre parametrique.Parameters.GetParameters + GetParameterType + Get*Value
lire_plis_depliageREADDepliageListe les plis du depliage tolerie avec pour chacun : angle de pliage (en degres), rayon interieur (en mm) et longueur developpee (en mm). Donnees essentielles pour programmer la plieuse.Proprietes des operations de pliage
lire_points_3dREADGeometrieListe tous les points 3D de construction du document avec leurs coordonnees X, Y, Z converties en mm. Les points 3D servent de references geometriques pour les contraintes et les assemblages.Geometries3D.GetPoints → GetPointGeometry (×1000)
lire_projection_principaleREADMise en planIdentifie la piece ou l'assemblage 3D source de la mise en plan et les vues principales (face, dessus, droite). Permet de remonter du plan 2D vers le modele 3D.GetProjectionDocument
lire_projet_courantREADNavigationRetourne le nom du projet actif dans TopSolid. C'est la premiere verification a faire pour s'assurer qu'un projet est bien ouvert avant toute operation.Pdm.GetCurrentProject → GetName
lire_propriete_batchREADBatchLit une propriete specifique (designation, reference, fabricant ou propriete utilisateur) sur tous les documents du projet. Retourne un tableau nom de document → valeur. Vue globale d'une propriete.Pdm.Get* en boucle — value = nom de la propriete
lire_propriete_utilisateurREADDocumentLit une propriete utilisateur personnalisee (texte) du document. Ces proprietes sont definies par l'entreprise dans le modele PDM (ex: "Indice", "Traitement", "Validation").Pdm.GetUserPropertyValue — value = nom de la propriete
lire_proprietes_pdmREADPDMRetourne les 4 proprietes PDM principales d'un seul appel : nom, designation, reference et fabricant. Pratique pour un apercu rapide du document sans faire 4 appels separes.Pdm.Get{Name,Description,PartNumber,Manufacturer}
lire_referenceREADPDMLit la reference du document, aussi appelee part number ou numero de piece. C'est le code utilise pour le suivi en production et l'approvisionnement (ex: "REF-2024-0042"). Retourne "(vide)" si non renseignee.Pdm.GetPartNumber(pdmId)
lire_reperes_3dREADGeometrieListe les reperes 3D (frames/systemes de coordonnees) du document par nom. Les reperes definissent des systemes de reference locaux utilises pour le positionnement dans les assemblages.Geometries3D.GetFrames
lire_shapesREADGeometrieListe les shapes (corps solides) du document avec le nombre de faces de chaque shape. Un document peut contenir plusieurs shapes (multi-corps). Les faces sont les surfaces individuelles du solide.Shapes.GetShapes → GetFaceCount
lister_documents_dossierREADNavigationListe les documents contenus dans un dossier specifique du projet. Utile pour explorer un sous-ensemble sans tout lister.Pdm.GetConstituents(folderId) — value = nom du dossier
lister_documents_projetREADNavigationListe TOUS les documents du projet avec pour chacun : nom, designation et reference. Format tableau complet. Utile pour avoir une vue d'ensemble du contenu du projet.Pdm.GetConstituents iteration complete
lister_documents_sans_designationREADAuditDetecte les documents du projet dont la designation (description fonctionnelle) est vide. Une designation manquante rend les nomenclatures et les recherches inutilisables.Filtre GetDescription vide
lister_documents_sans_referenceREADAuditDetecte les pieces et assemblages du projet dont le champ reference (part number) est vide. Utile pour l'audit qualite avant mise en production ou archivage.Filtre GetPartNumber vide
lister_esquissesREADGeometrieListe les esquisses 2D (sketches) du document par nom. Les esquisses sont les profils de base utilises par les operations d'extrusion, revolution, balayage, etc.Sketches2D.GetSketches
lister_exporteursREADExportListe tous les formats d'export disponibles dans l'installation TopSolid courante. La liste depend des modules installes et des licences.Documents.GetExporterNames
lister_inclusionsREADAssemblageListe les inclusions de l'assemblage : chaque inclusion est une instance d'une piece (document de definition). Montre la relation inclusion → piece source. Permet de comprendre la structure de l'assemblage.IsInclusion → GetInclusionDefinitionDocument
lister_vues_mise_en_planREADMise en planListe toutes les vues du plan avec pour chacune : nom, echelle et type (projection, coupe, detail, isometrique...). Les vues sont les representations 2D de la piece/assemblage 3D.DraftingDocuments.GetViews → GetViewScale
modifier_designationWRITEPDMChange la designation (description fonctionnelle) du document actif. La sauvegarde PDM est automatique apres modification. Aucune transaction de modelisation necessaire.Pdm.SetDescription — value = texte libre
modifier_fabricantWRITEPDMChange le fabricant ou fournisseur associe au document. Sauvegarde PDM automatique.Pdm.SetManufacturer — value = nom fabricant
modifier_nomWRITEPDMRenomme le document dans l'arborescence projet. Attention : si d'autres documents referencent ce nom (inclusions, mises en plan), les liens peuvent etre impactes.Pdm.SetName — value = nouveau nom
modifier_parametre_reelWRITEParametresModifie la valeur d'un parametre reel. La valeur DOIT etre en unites SI : les longueurs en metres (50 mm = 0.05), les angles en radians (45° = 0.785398). TopSolid recalcule automatiquement le modele apres modification.Parameters.SetRealValue — value = nom:valeurSI (ex: Longueur:0.15)
modifier_parametre_texteWRITEParametresModifie la valeur d'un parametre texte. Le format est nom:valeur, separes par deux-points. Le match du nom est partiel et insensible a la casse.Parameters.SetTextValue — value = nom:valeur
modifier_propriete_utilisateurWRITEDocumentModifie une propriete utilisateur personnalisee. Le format est nom:valeur separes par deux-points. La propriete doit exister dans le modele PDM.Pdm.SetUserPropertyValue — value = nom:valeur
modifier_referenceWRITEPDMChange la reference / part number du document. Sauvegarde PDM automatique. Utile pour affecter ou corriger un code article en serie.Pdm.SetPartNumber — value = nouvelle reference
ouvrir_document_par_nomWRITENavigationCherche un document par nom dans le projet puis l'ouvre dans l'editeur TopSolid. Le document devient le document actif pour toutes les operations suivantes. Indispensable avant de lire parametres, shapes, etc.Documents.Open(ref docId) — value = nom document
ouvrir_mise_en_planWRITEMise en planCherche automatiquement la mise en plan associee a la piece ou l'assemblage courant en parcourant les back-references PDM (documents de type .TopDft qui referencent le doc actif), puis l'ouvre dans l'editeur.SearchBackReferences filtre .TopDft → Documents.Open
rapport_masse_assemblageREADPhysiqueRapport de masse pour un assemblage complet : masse totale (kg), volume total, surface totale, et decompte des pieces. Donne une vue globale du poids de l'assemblage. Necessite un materiau sur chaque piece.GetParts + proprietes systeme agreges
reconstruire_documentWRITEDocumentForce la reconstruction complete du modele : recalcul de toutes les operations de l'arbre de construction dans l'ordre. Utile apres modification de parametres pour voir le resultat final.Documents.Rebuild(docId)
renommer_occurrenceWRITEAssemblageRenomme une occurrence dans l'assemblage. Le match sur l'ancien nom est partiel et insensible a la casse. Utile pour donner des noms significatifs aux instances ("Vis_gauche", "Plaque_dessus").Entities.SetFunctionOccurrenceName — value = ancien:nouveau
reporter_parametresWRITEBatchCopie les valeurs de parametres du document actif vers un autre document du projet. Le match se fait par nom de parametre. Ignore les parametres systeme ($Mass, $Volume...). Ideal pour propager une modification sur plusieurs pieces similaires.Parameters.Set{Real,Text,Integer,Boolean}Value — value = nom doc cible
reporter_proprietes_pdmWRITEBatchCopie la designation, la reference et le fabricant du document actif vers un autre document du projet. Utile pour homogeneiser les proprietes entre pieces d'une meme famille ou serie.Pdm.Set{Description,PartNumber,Manufacturer} — value = nom doc cible
resumer_projetREADNavigationResume synthetique du projet : nombre de documents par type (.TopPrt, .TopAsm, .TopDft...), nombre de dossiers, structure globale. Vue macro avant de plonger dans le detail.Comptage par Pdm.GetType
sauvegarder_documentWRITEDocumentSauvegarde le document actif dans le PDM TopSolid. Equivalent du Ctrl+S dans l'interface. A faire apres des modifications de parametres ou de proprietes.Pdm.Save(pdmId, true)
sauvegarder_tout_projetWRITEDocumentSauvegarde tous les documents du projet en une seule passe. Equivalent du "Sauvegarder tout" de TopSolid. A utiliser apres des modifications batch ou avant de fermer.Pdm.Save en boucle sur tous les docs
selectionner_faceASKSelectionDemande a l'utilisateur de cliquer une face dans la vue 3D. Retourne le shape parent et l'index de la face selectionnee. Utilise pour les operations face-specifiques (couleur, usinage).User.AskFace
selectionner_point_3dASKSelectionDemande a l'utilisateur de cliquer un point dans l'espace 3D de TopSolid. Retourne les coordonnees X, Y, Z en mm. Utile pour definir une position, un point de reference ou mesurer une distance.User.AskPoint3D
selectionner_shapeASKSelectionOuvre une boite de dialogue TopSolid demandant a l'utilisateur de cliquer un corps solide (shape) a l'ecran. Retourne le nom du shape et son nombre de faces. Utile quand l'IA ne peut pas determiner automatiquement quel element traiter.User.AskShape
type_documentREADDocumentRetourne le type du document actif : piece (.TopPrt), assemblage (.TopAsm), mise en plan (.TopDft), etc. Detecte aussi si c'est une famille ou une mise a plat. Premiere chose a verifier pour adapter le traitement.IsAssembly + IsDraftingDocument + IsFamily + GetType
verifier_drivers_familleREADFamilleVerifie que les parametres drivers de la famille (ceux qui pilotent le catalogue) ont une designation renseignee. Les drivers sans designation rendent le catalogue moins lisible. Liste ceux a corriger.Families.GetCatalogColumnParameters → GetDescription
verifier_drivers_famille_batchREADFamilleAudit les drivers de TOUTES les familles du projet d'un coup. Detecte les drivers sans designation sur chaque famille. Rapport global pour corriger en serie.IsFamily → GetCatalogColumnParameters en boucle
verifier_materiaux_manquantsREADAuditParcourt le projet et liste les pieces qui n'ont pas de materiau affecte (masse = 0 kg). Indispensable avant un calcul de masse d'assemblage ou un export pour simulation.Filtre $Mass == 0 sur tous les docs
verifier_pieceREADAuditCheck-list qualite pour la piece : designation renseignee ? Reference renseignee ? Materiau affecte ? Retourne OK ou ATTENTION pour chaque critere. A utiliser avant livraison ou archivage.GetDescription + GetPartNumber + presence materiau
verifier_projetREADAuditVerification qualite a l'echelle du projet entier : liste les pieces sans designation et les pieces sans reference (part number). Detecte les documents incomplets avant une livraison.Iteration complete avec filtres
verifier_virtuel_batchREADBatchVerifie la propriete 'virtuel' (IsVirtualDocument) sur tous les documents du projet. Liste les documents non-virtuels. Un document virtuel n'est pas stocke physiquement sur le serveur.Documents.IsVirtualDocument en boucle
vider_auteur_batchWRITEBatchVide le champ Auteur de tous les documents du projet. Utile pour anonymiser les fichiers avant une livraison client ou un transfert de projet.Pdm.SetAuthor("") en boucle
vider_auteur_documentWRITEDocumentVide le champ Auteur du document courant uniquement.Pdm.SetAuthor(pdmId, "")

Par categorie (detail)

Proprietes PDM (9 recettes)

Les proprietes PDM (Product Data Management) sont les metadonnees du document TopSolid : designation, nom, reference et fabricant. Elles sont stockees dans le gestionnaire PDM et accessibles sans ouvrir le document en edition.

RecetteDescriptionTechniqueMode
read_designationLit la description fonctionnelle du document (ex: "Bride de serrage"). Retourne (vide) si non renseignee.Pdm.GetDescription(pdmId)READ
read_nameLit le nom unique du document dans l'arborescence projet (ex: "BRD-001").Pdm.GetName(pdmId)READ
read_referenceLit le numero de reference / part number (ex: "REF-2024-0042"). Retourne (vide) si non renseignee.Pdm.GetPartNumber(pdmId)READ
read_manufacturerLit le fabricant ou fournisseur associe au document.Pdm.GetManufacturer(pdmId)READ
read_pdm_propertiesRetourne les 4 proprietes PDM d'un coup : nom, designation, reference, fabricant. Utile pour un apercu rapide.Pdm.Get{Name,Description,PartNumber,Manufacturer}READ
set_designationChange la designation. Sauvegarde auto.Pdm.SetDescriptionvalue = texte libreWRITE
set_nameRenomme le document dans le projet. Attention : peut casser des liens si d'autres documents referencent ce nom.Pdm.SetNamevalue = nouveau nomWRITE
set_referenceChange la reference / part number. Sauvegarde auto.Pdm.SetPartNumbervalue = nouvelle refWRITE
set_manufacturerChange le fabricant. Sauvegarde auto.Pdm.SetManufacturervalue = nom fabricantWRITE

Recettes pour explorer l'arborescence du projet, chercher des documents, lister des dossiers. Le projet TopSolid est une hierarchie PDM avec dossiers et documents de differents types (.TopPrt, .TopAsm, .TopDft...).

RecetteDescriptionTechniqueMode
read_current_projectRetourne le nom du projet actif dans TopSolid. Premiere verification utile.Pdm.GetCurrentProject()Pdm.GetName()READ
read_project_contentsParcourt recursivement toute l'arborescence : dossiers, sous-dossiers et documents. Indente par niveau. Affiche le total dossiers/documents.Pdm.GetConstituents() recursifREAD
search_documentRecherche un document par nom (match partiel, CONTAINS). Retourne nom + designation + reference pour chaque resultat.Pdm.SearchDocumentByName(projId, value)value = texte a chercherREAD
search_folderRecherche un dossier par nom dans le projet (match partiel).Pdm.GetConstituents() + filtre nom — value = texte a chercherREAD
open_document_by_nameCherche puis ouvre un document dans l'editeur TopSolid. Le document devient le document actif.Documents.Open(ref docId)value = nom du documentWRITE
list_project_documentsListe TOUS les documents du projet avec designation et reference. Format tableau.Pdm.GetConstituents() iteration completeREAD
list_folder_documentsListe les documents d'un dossier specifique. Utile pour explorer un sous-ensemble du projet.Pdm.GetConstituents(folderId)value = nom du dossierREAD
summarize_projectResume synthetique : nombre de documents par type (.TopPrt, .TopAsm, .TopDft...), nombre de dossiers.Comptage par extension via Pdm.GetType()READ
count_documents_by_typeCompte les documents groupes par type. Retourne un tableau type → quantite.Pdm.GetType() sur chaque docREAD
list_documents_without_referenceDetecte les pieces/assemblages dont le champ reference est vide. Utile pour l'audit qualite.Filtre GetPartNumber() == ""READ
list_documents_without_designationDetecte les documents sans designation. Utile pour l'audit qualite.Filtre GetDescription() == ""READ
search_parts_by_materialListe les pieces avec leur materiau et masse. Filtre optionnel sur le nom du materiau.Parameters.GetRealValue(Mass) + materiau — value = filtre optionnelREAD
read_where_usedWhere-used : trouve tous les documents qui referencent le document courant (assemblages parents, mises en plan).Pdm.SearchMajorRevisionBackReferences()READ
read_revision_historyTimeline des revisions majeures et mineures du document courant avec auteur et date.Pdm.GetMajorRevisions() + GetMinorRevisions()READ
compare_revisionsCompare les parametres entre la revision courante et la precedente. Montre les valeurs qui ont change.Diff GetParameters() entre 2 revisionsREAD
find_modified_documentsListe les documents non sauvegardes (dirty) du projet. Utile avant un export ou une fermeture.Documents.IsDirty(docId) sur chaque docREAD
batch_export_stepExporte TOUTES les pieces et assemblages du projet en STEP dans un dossier. Un fichier par document.Documents.Export() en boucle — value = chemin dossier (optionnel)READ
batch_read_propertyLit une propriete specifique sur tous les documents du projet. Retourne un tableau nom → valeur.Iteration + Pdm.Get{Description,PartNumber,...}value = nom proprieteREAD
batch_clear_authorVide le champ Auteur de tous les documents du projet. Utile pour anonymiser avant livraison.Pdm.SetAuthor(pdmId, "") en boucleWRITE
clear_document_authorVide le champ Auteur du document courant uniquement.Pdm.SetAuthor(pdmId, "")WRITE
batch_check_virtualVerifie la propriete "virtuel" (IsVirtualDocument) sur tous les documents. Liste les non-virtuels.Documents.IsVirtualDocument() en boucleREAD
batch_enable_virtualActive le mode virtuel sur tous les documents non-virtuels du projet.Documents.SetVirtualDocumentMode(true) en boucleWRITE

Parametres (6 recettes)

Les parametres TopSolid sont les variables du modele : cotes, dimensions, textes. Ils pilotent la geometrie parametrique. Les valeurs sont toujours en SI (metres, radians, kg).

RecetteDescriptionTechniqueMode
read_parametersListe tous les parametres du document avec nom, valeur et type (Real, Integer, Boolean, Text).Parameters.GetParameters(docId) + GetParameterType + Get{Real,Integer,Boolean,Text}ValueREAD
read_real_parameterLit la valeur d'un parametre reel par nom (match partiel). Retourne la valeur en SI. Ex: 0.050000 = 50mm.Parameters.GetRealValue()value = nom du parametreREAD
read_text_parameterLit la valeur d'un parametre texte par nom (match partiel).Parameters.GetTextValue()value = nom du parametreREAD
set_real_parameterModifie un parametre reel. La valeur doit etre en SI (metres). Ex: 50mm → 0.05.Parameters.SetRealValue()value = nom:valeurSI (ex: Longueur:0.15)WRITE
set_text_parameterModifie un parametre texte.Parameters.SetTextValue()value = nom:valeur (ex: Materiau:Acier)WRITE
compare_parametersCompare les parametres entre le document actif et un autre. Affiche les differences (valeur A vs B) et les parametres exclusifs a chacun.Diff par nom de parametre — value = nom de l'autre documentREAD

Masse, volume, dimensions (7 recettes)

Proprietes physiques calculees par TopSolid. Necessitent un materiau affecte pour la masse. Les valeurs systeme sont accessibles via les parametres speciaux ($Mass, $Volume, etc.).

RecetteDescriptionTechniqueMode
read_mass_volumeRetourne masse (kg), volume (mm³), surface (mm²) depuis les proprietes systeme du document. Necessite un materiau pour la masse.Parameters systeme : $Mass, $Volume, $Surface AreaREAD
assembly_mass_reportMasse totale de l'assemblage, volume, surface, et nombre de pieces. Vue globale assemblage.GetParts() + proprietes systeme agregesREAD
read_material_densityCalcule la densite (kg/m³) a partir de masse/volume. Utile pour verifier le materiau affecte.masse / volume depuis parametres systemeREAD
read_materialRetourne le nom du materiau affecte et la densite calculee.Parametres systeme $Mass + $VolumeREAD
read_part_dimensionsLit Height, Width, Length et Box Size depuis les proprietes systeme. Valeurs en mm.Parameters systeme : $Height, $Width, $Length, $Box SizeREAD
read_bounding_boxBoite englobante : min/max XYZ en mm. Calcule aussi les dimensions LxlxH.Parametres systeme bounding boxREAD
read_inertia_momentsMoments principaux d'inertie X, Y, Z. Utile pour le calcul de resistance.Parameters systeme : $Principal Moment of Inertia X/Y/ZREAD

Geometrie et visualisation (5 recettes)

Acces a la geometrie du modele : points, reperes, esquisses, shapes (corps solides), operations (arbre de construction).

RecetteDescriptionTechniqueMode
read_3d_pointsListe les points 3D avec coordonnees X, Y, Z en mm.Geometries3D.GetPoints()GetPointGeometry() (×1000 pour mm)READ
read_3d_framesListe les reperes 3D (frames) par nom.Geometries3D.GetFrames()READ
list_sketchesListe les esquisses 2D du document par nom.Sketches2D.GetSketches()READ
read_shapesListe les shapes (corps solides) avec nombre de faces par shape.Shapes.GetShapes()GetFaceCount()READ
read_operationsArbre de construction : liste les operations avec nom et type (Extrusion, Revolution, Pocket, etc.).Operations.GetOperations()Elements.GetTypeFullName()READ

Attributs visuels (11 recettes)

Couleur, transparence, calques — tout ce qui concerne l'apparence visuelle des elements. Les couleurs sont en RGB (0-255). La transparence va de 0.0 (opaque) a 1.0 (invisible).

RecetteDescriptionTechniqueMode
attr_read_allLit couleur, transparence, calque et visibilite de tous les elements. Vue complete des attributs visuels.Elements.GetColor/Transparency + Layers.GetLayerREAD
attr_read_colorLit la couleur RGB de chaque shape. Retourne "pas de couleur" si heritee du materiau.Elements.HasColor()GetColor()READ
attr_read_face_colorsLit les couleurs face par face. Utile quand chaque face a sa propre couleur.Shapes.GetFaces()Elements.GetColor() par faceREAD
attr_set_colorChange la couleur d'un shape. Si plusieurs shapes, TopSolid demande une selection interactive.Elements.SetColor(target, Color)value = R,G,B (ex: 255,0,0)WRITE
attr_set_color_allChange la couleur de TOUS les elements d'un coup. Pas de selection.Elements.SetColor() en boucle — value = R,G,BWRITE
attr_replace_colorRemplace une couleur specifique par une autre sur tous les elements. Ex: tout le vert → rouge.Filtre par couleur source → SetColor()value = R1,G1,B1:R2,G2,B2WRITE
attr_read_transparencyLit la transparence de chaque shape (0.0 a 1.0).Elements.HasTransparency()GetTransparency()READ
attr_set_transparencyChange la transparence. Si plusieurs shapes, selection interactive.Elements.SetTransparency()value = 0.0 a 1.0WRITE
attr_list_layersListe les calques (layers) du document par nom.Layers.GetLayers()READ
attr_assign_layerDeplace un element vers un calque.Layers.SetLayer(elemId, layerId)value = nom_element:nom_calqueWRITE
select_shapeDemande a l'utilisateur de cliquer sur un shape dans TopSolid. Retourne nom + nombre de faces.User.AskShape() interactifASK

Selection interactive (3 recettes)

Recettes qui ouvrent une boite de dialogue TopSolid pour que l'utilisateur pointe un element a l'ecran. Utile quand l'IA ne peut pas determiner l'element automatiquement.

RecetteDescriptionTechniqueMode
select_shapeL'utilisateur clique sur un corps solide. Retourne nom et nombre de faces.User.AskShape()ASK
select_faceL'utilisateur clique sur une face. Retourne le shape parent et l'index de la face.User.AskFace()ASK
select_3d_pointL'utilisateur clique un point dans l'espace 3D. Retourne les coordonnees X, Y, Z en mm.User.AskPoint3D()ASK

Assemblages (8 recettes)

Un assemblage TopSolid contient des inclusions (instances de pieces) avec des contraintes de positionnement. Chaque inclusion reference un document "definition".

RecetteDescriptionTechniqueMode
detect_assemblyVerifie si le document courant est un assemblage. Si oui, liste les pieces.Assemblies.IsAssembly()GetParts()READ
list_inclusionsListe les inclusions avec le document de definition de chaque instance. Montre la structure assemblage → piece.Operations.GetOperations() filtre IsInclusion()GetInclusionDefinitionDocument()READ
read_occurrencesListe les occurrences (instances visibles) avec leur document de definition.Assemblies.GetParts() + GetOccurrenceDefinition()READ
count_assembly_partsCompte les pieces groupees par reference (type). Retourne quantite par piece unique et total. Ex: "Vis M8: 4, Plaque: 2 → 6 pieces".GetParts() groupe par GetInclusionDefinitionDocument()READ
rename_occurrenceRenomme une occurrence dans l'assemblage. Match par nom partiel (insensible a la casse).Entities.SetFunctionOccurrenceName()value = ancien_nom:nouveau_nomWRITE
count_occurrences (v1.6.2)Compte total / inclusions / definitions uniques.GetParts() + IsOccurrence() + GetOccurrenceDefinition()READ
list_inclusions_with_reference (v1.6.2)Pour chaque inclusion : nom + reference PDM + designation de la definition. Utile pour audit BOM.GetParts() + Pdm.GetPartNumber/GetDescriptionREAD
find_occurrence (v1.6.2)Recherche d'occurrence par fragment de nom. value=fragment.Substring match sur GetFriendlyName()READ

Familles (5 recettes)

Une famille TopSolid est un document parametrique avec des configurations (codes). Les drivers sont les parametres qui pilotent les variantes du catalogue.

RecetteDescriptionTechniqueMode
detect_familyVerifie si le document est une famille. Indique si elle est explicite (catalogue) ou implicite (parametrique).Families.IsFamily() + IsExplicit()READ
read_family_codesListe les codes (variantes) de la famille. Chaque code correspond a une configuration du catalogue.Families.GetCodes()READ
check_family_driversVerifie que les drivers (parametres pilotant le catalogue) ont une designation. Liste ceux sans description.Families.GetCatalogColumnParameters()Elements.GetDescription()READ
fix_family_driversGenere automatiquement une designation pour les drivers sans description, en deduisant du nom du parametre (CamelCase → mots separes).Elements.SetDescription() auto-genere — aucun valueWRITE
batch_check_family_driversAudit des drivers de TOUTES les familles du projet. Detecte les drivers sans designation sur chaque famille.Iteration IsFamily()GetCatalogColumnParameters()READ

Export (7 recettes)

Export du document actif vers differents formats CAO/dessin. Le chemin est optionnel — si omis, TopSolid utilise le dossier par defaut (temp ou bureau). L'exporteur est selectionne automatiquement par nom.

RecetteDescriptionTechniqueMode
export_stepExport STEP (AP214). Format universel d'echange CAO. Retourne le chemin du fichier cree.Documents.Export() avec exporteur STEP — value = chemin (optionnel)READ
export_dxfExport DXF (AutoCAD). Pour les mises en plan ou profils 2D.Documents.Export() avec exporteur DXF — value = chemin (optionnel)READ
export_pdfExport PDF. Pour les mises en plan principalement.Documents.Export() avec exporteur PDF — value = chemin (optionnel)READ
export_stlExport STL (maillage triangles). Pour l'impression 3D ou la visualisation.Documents.Export() avec exporteur STL — value = chemin (optionnel)READ
export_igesExport IGES. Format historique d'echange CAO, encore utilise dans l'aeronautique.Documents.Export() avec exporteur IGES — value = chemin (optionnel)READ
list_exportersListe tous les formats d'export disponibles dans l'installation TopSolid.Documents.GetExporterNames()READ
export_bom_csvExporte la nomenclature (BOM) du document en format texte avec colonnes separees.Lecture Nomenclatures → format texteREAD

Audit et verification (8 recettes)

Outils de controle qualite : verification des proprietes, coherence des noms de parametres, materiaux manquants. Essentiels avant livraison ou archivage.

RecetteDescriptionTechniqueMode
audit_partAudit complet : proprietes PDM, parametres (nombre + liste), shapes, masse, volume, surface, materiau. Rapport synthetique.Combinaison Pdm.* + Parameters.* + Shapes.* + parametres systemeREAD
audit_assemblyAudit assemblage : pieces, inclusions, occurrences, masse totale, structure.Assemblies.GetParts() + GetOccurrences() + masse systemeREAD
check_partCheck-list qualite : designation renseignee ? Reference renseignee ? Materiau affecte ? Retourne OK/ATTENTION par critere.Verification GetDescription, GetPartNumber, presence materiauREAD
check_projectVerification qualite sur tout le projet : liste les pieces sans designation et sans reference.Iteration complete avec filtresREAD
check_missing_materialsListe les pieces du projet qui n'ont pas de materiau affecte (masse = 0).Filtre $Mass == 0 sur tous les docsREAD
audit_parameter_namesDetecte les incoherences de convention dans les noms de parametres (CamelCase vs snake_case, doublons proches, caracteres speciaux).Analyse syntaxique des noms via regexREAD
batch_audit_parameter_namesMeme audit sur tous les documents du projet. Rapport global.Iteration complete + analyse syntaxiqueREAD
batch_audit_driver_designationsListe les designations de drivers de toutes les familles pour inspection visuelle (fautes, incoherences).GetCatalogColumnParameters()GetDescription() sur toutes les famillesREAD

Mise en plan (10 recettes)

La mise en plan (Drafting) est le dessin technique 2D genere a partir d'une piece ou assemblage 3D. Elle contient des vues, une echelle, un format papier.

RecetteDescriptionTechniqueMode
detect_draftingVerifie si le document est une mise en plan. Retourne le nombre de vues et le format.Draftings.IsDrafting()READ
open_draftingCherche la mise en plan associee a la piece courante (via back-references PDM) et l'ouvre.Pdm.SearchMajorRevisionBackReferences() filtre .TopDftDocuments.Open()WRITE
list_drafting_viewsListe les vues du plan avec nom et titre.Draftings.GetDraftingViews()READ
read_drafting_scaleLit l'echelle globale du plan et l'echelle de chaque vue individuellement.Draftings.GetScaleFactorParameterValue() + GetViewScaleFactor()READ
read_drafting_formatFormat papier (A3/A4), dimensions en mm, nombre de pages, mode de projection.Draftings.GetDraftingFormatName/Dimensions/PageCountREAD
read_main_projectionIdentifie la piece source de la mise en plan et les vues principales.Draftings.GetMainProjectionSet()READ
set_drafting_scale (v1.6.1)Change l'echelle globale du plan. value=denominateur (ex: 10 → 1:10).Draftings.SetScaleFactorParameterValue() — Pattern DWRITE
set_drafting_format (v1.6.1)Change le format papier. value=nom (ex: A3, A4).Draftings.SetDraftingFormatName() — Pattern DWRITE
set_projection_quality (v1.6.1)Qualite de projection. value=exact (precis) ou fast (rapide).Draftings.SetProjectionMode() — Pattern DWRITE
print_drafting (v1.6.1)Imprime toutes les pages du plan (N&B, 300 DPI, a l'echelle).Draftings.Print()READ

Nomenclature / BOM (6 recettes)

La nomenclature (Bill of Materials) est le tableau des composants d'un assemblage. Elle est generalement dans la mise en plan.

RecetteDescriptionTechniqueMode
detect_bomVerifie si le document contient une nomenclature. Retourne le nombre de colonnes.Boms.IsBom()READ
read_bom_columnsListe les colonnes du tableau (Repere, Designation, Quantite, Reference...).Boms.GetColumnCount() + GetColumnTitle()READ
read_bom_contentsLit le tableau complet : toutes les lignes actives avec toutes les cellules. Format texte tabulaire.Boms.GetRowChildrenRows() + GetRowContents()READ
count_bom_rowsCompte les lignes actives et inactives de la nomenclature.Boms.IsRowActive() sur chaque ligneREAD
activate_bom_row (v1.6.1)Active une ligne BOM par index. value=row_index.Boms.ActivateRow() — Pattern DWRITE
deactivate_bom_row (v1.6.1)Desactive une ligne BOM par index. value=row_index.Boms.DeactivateRow() — Pattern DWRITE

Mise a plat / Depliage (3 recettes)

Le depliage (flat pattern) concerne la tolerie : une piece en tole est "depliee" pour obtenir le contour plat a decouper. Les plis ont un angle, un rayon et une longueur.

RecetteDescriptionTechniqueMode
detect_unfoldingVerifie si le document contient un depliage tolerie. Liste les plis detectes.Detection via operations de type FlatPatternREAD
read_bend_featuresListe les plis avec angle (degres), rayon interieur (mm) et longueur (mm).Proprietes des operations de pliageREAD
read_unfolding_dimensionsDimensions du contour deplie : longueur et largeur du flan plat en mm.Parametres systeme de depliageREAD

Document (7 recettes)

Operations sur le document actif : sauvegarde, reconstruction, proprietes utilisateur personnalisees.

RecetteDescriptionTechniqueMode
document_typeRetourne le type du document actif : piece, assemblage, mise en plan, etc. Detecte aussi famille et mise a plat.IsAssembly(), IsDraftingDocument(), IsFamily(), GetType()READ
save_documentSauvegarde le document actif.Pdm.Save(pdmId, true)WRITE
rebuild_documentForce la reconstruction du modele (recalcul de toutes les operations). Utile apres modification de parametres.Documents.Rebuild(docId)WRITE
save_all_projectSauvegarde tous les documents du projet en une passe.Pdm.Save() en boucle sur tous les docsWRITE
invoke_commandExecute une commande menu TopSolid par son nom interne. Attention : certaines commandes ouvrent des dialogues.Application.InvokeCommand(value)value = nom de la commandeWRITE

Proprietes utilisateur et document (5 recettes)

Les proprietes utilisateur sont definies par l'entreprise (dossier PDM dedie) et materialisees dans chaque document comme des parametres speciaux. La resolution par Pdm.GetTextUserProperty(pdmId, "name_string") ne fonctionne pas — l'API attend une PdmObjectId pointant sur la definition. Le pattern fiable est d'iterer Parameters.GetParameters() et filtrer ceux avec une UserPropertyDefinition non-vide.

RecetteDescriptionTechniqueMode
read_user_property (v1.6.2 fixed)Lit une propriete utilisateur par son nom visible (text/real/integer/boolean, auto-type).Parameters.GetUserPropertyDefinition() + match par GetFriendlyName()READ
list_user_properties (v1.6.2)Liste toutes les proprietes utilisateur du document avec type + valeur courante.Iteration GetParameters() + filtre GetUserPropertyDefinition() != EmptyREAD
set_user_property (v1.6.2 fixed)Modifie une propriete utilisateur par son nom visible, parse la valeur selon le type. value=nom:valeur.Parameters.SetTextValue/SetRealValue/... apres lookup UserPropertyDefinitionWRITE
list_document_properties (v1.6.2)Liste TOUTES les proprietes document (systeme + user) via IDocuments.GetProperties() — utile pour decouvrir le fullName exact d'une propriete.Documents.GetProperties(docId) + GetPropertyType()READ
read_document_property (v1.6.2)Lit n'importe quelle propriete document par son fullName (auto-detect type). value=fullName.Documents.GetPropertyType() + GetPropertyXxxValue()READ

Comparaison de documents (3 recettes)

Compare le document courant avec un autre document du meme projet. Utile pour verifier des differences entre revisions ou variantes.

RecetteDescriptionTechniqueMode
compare_document_operationsCompare l'arbre de construction entre 2 documents. Montre les operations ajoutees, supprimees ou differentes.Operations.GetOperations() diff par nom — value = nom de l'autre documentREAD
compare_document_entitiesCompare les entites (shapes, esquisses, points, reperes) entre 2 documents. Montre les differences de quantite.Comptage Shapes/Sketches/Points/Framesvalue = nom de l'autre documentREAD
compare_revisionsCompare les parametres de la revision courante avec la revision precedente du meme document.Pdm.GetMajorRevisions() → diff parametresREAD

Report de modifications (2 recettes)

Copie des proprietes d'un document vers un autre. Utile pour propager des modifications en serie.

RecetteDescriptionTechniqueMode
copy_parameters_toCopie les valeurs de parametres du document actif vers un autre. Match par nom de parametre. Ignore les parametres systeme ($Mass, etc.).Parameters.Set{Real,Text,Integer,Boolean}Value()value = nom du document cibleWRITE
copy_pdm_properties_toCopie designation, reference et fabricant du document actif vers un autre.Pdm.Set{Description,PartNumber,Manufacturer}()value = nom du document cibleWRITE

Document virtuel (2 recettes)

RecetteDescriptionTechniqueMode
enable_virtual_documentActive le mode virtuel sur le document courant. Un document virtuel n'est pas sauvegarde physiquement.Documents.SetVirtualDocumentMode(docId, true)WRITE
batch_enable_virtualActive le mode virtuel sur tous les documents non-virtuels du projet.SetVirtualDocumentMode(true) en boucleWRITE

Pattern de modification

Toutes les recettes WRITE suivent le meme pattern :

csharp
TopSolidHost.Application.StartModification("Description", false);
TopSolidHost.Documents.EnsureIsDirty(ref docId);
// ... modifications ...
TopSolidHost.Application.EndModification(true, true);
TopSolidHost.Pdm.Save(pdmId, true);

DANGER

EnsureIsDirty(ref docId) change le docId ! Chercher les elements APRES cet appel, jamais avant.

Couleurs de reference

NomRGB
rouge255,0,0
vert0,128,0
bleu0,0,255
jaune255,255,0
orange255,165,0
blanc255,255,255
noir0,0,0
gris128,128,128

Unites (TopSolid = SI)

GrandeurUnite SIConversion
Longueursmetres50 mm = 0.05
Anglesradians45° = 0.785398
Masseskg
VolumesAffiche en mm³ (×10⁹)
SurfacesAffiche en mm² (×10⁶)

Tests LIVE

59/61 tests PASS sur TopSolid vivant (assemblage REF-MCPTEST).

CategoriePASSTotal
PDM read/write66
Assemblage66
Export (STEP/STL/IGES/DXF/PDF)55
Attributs lecture55
Parametres11
Geometrie11
Projet11

21 recettes non testees automatiquement (Ask* interactives, contexte specifique requis).

Dataset LoRA

2114 entrees ShareGPT dans data/lora-dataset-en.jsonl pour fine-tuner le sous-agent 3B (ministral-topsolid v6 conversational). Couvre les 124 recettes + patterns multi-turn + error-handling + acknowledgments. Script regenerable : scripts/generate-lora-dataset-en.py.

Eval : 100/100 sur 50 questions (5 tiers, trivial → piege), multi-turn verifie manuellement.

Pattern d'ecriture dans modify_script

Les recettes WRITE passent par topsolid_modify_script qui wrappe automatiquement StartModification / EnsureIsDirty / EndModification / Pdm.Save. Contraintes :

  • NE PAS utiliser return "..." — le wrapper l'interdit.
  • Utiliser __message = "..." pour personnaliser le message de retour.
  • return; (void) est autorise pour les early exits — transforme en goto __done;.
  • Variables pre-declarees : docId, pdmId, __message.

Exemple (extrait de set_drafting_scale) :

csharp
if (docId.IsEmpty) { __message = "No document open."; return; }
double factor = 1.0 / denom;
TopSolidDraftingHost.Draftings.SetScaleFactorParameterValue(docId, factor);
__message = "OK: drafting scale set to 1:" + denom;

TopSolid MCP — Serveur Model Context Protocol pour TopSolid Automation