Powerd911 – Numéro #1 au Canada

Affichage des objets du premier niveau d’un modèle

Lorsque l’on manipule des modèles de grande taille ou plusieurs modèles à la fois, il peut être fastidieux d’effectuer des tâches répétitives, telles que modifier des objets à l’aide de règles globales, importer ou générer des nouveaux formats ou encore vérifier des modèles. De telles opérations peuvent être automatisées à l’aide de scripts.

Pour ce faire vous pouvez lire et modifier n’importe quel objet PowerAMC en utilisant les langages de script tel que :

  • Java ;
  • VBScript ;
  • C# ;
  • etc.

Le script suivant illustre la syntaxe de base en VBScript que nous avons appliquée à la manipulation des modèles et objets du premier niveau.

Dim var ' Déclaration d'une variable locale

var = 1 ' Affectation d'une valeur pour un type simple

Set var = ActiveModel ' Affectation d'une valeur pour un objet. ActiveModel est une propriété globale PowerAMC
If not var is Nothing Then ' Condition sur un objet, testant pour savoir s'il est 'null'
Dim objt ' Déclaration d'une autre variable locale
Dim objt1
For Each objt In ActiveModel.Children ' Boucle sur la collection d'objets enfant
DescribeObject objt ' Appel de procédure avec objt comme paramètre (sans parenthèses). La procédure est définie ci-dessous.
Next
Else
output "Il n'y a pas de modèle actif" ' Output est une procédure PowerAMC qui écrit du texte dans la fenêtre Résultats
End If



' Ceci est une procédure - un méthode qui ne renvoie pas de valeur
Sub DescribeObject(objt)
Dim desc ' Déclaration de variable dans la procédure
desc = ComputeObjectLabel(objt) ' Appel de fonction avec objt comme paramètre (avec parenthèses). La fonction est définie ci-dessous.
' On récupère la valeur renvoyée par la fonction dans la variable desc
output desc ' Affiche la description de l'objet dans le résultat
End Sub



' Ceci est une fonction - une méthode qui renvoie une valeur
Function ComputeObjectLabel(objt)
Dim label ' Déclaration d'une variable locale pour stocker le libellé de l'objet
label = "" ' Initialisation de la variable de libellé avec une valeur par défaut
If objt is nothing then
label = "Aucun objet"
ElseIf objt.IsShortcut() then ' IsShortcut est une fonction PowerAMC disponible sur les objets
label = objt.Name & " (shortcut)" ' Concaténation de deux chaînes
Else
On Error Goto 0 ' Désactive l'abandon d'exécution de script sur erreur
label = objt.Name ' Assigne la propriété Nom de l'objet à la variable locale
On Error Resume Next ' Réactive l'exécution de script en cas d'erreur
End If
ComputeObjectLabel = label ' La valeur est renvoyée en affectant une variable implicite avec le même nom que la fonction
End Function

 

Laisser un commentaire