Sie sind auf Seite 1von 29

PLANIFICATION ET ORGANISATION

-
DESIGN SCRIPT ET FONCTION
OPTIMISATION DE PROCESSUS DE TRAVAIL
PARTIE 2 – MODULE 5 ET 6

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 1


DÉROULEMENT DU COURS

9:00 – PRÉSENCES & INSTRUCTIONS


9:15 – THÉORIE
• PLANIFICATION DE LA PROGRAMMATION
• ANNOTATION DE SCRIPT
• ORGANISATION DE SCRIPT
• PUBLICATION DE SCRIPT ET DE NOEUD
10:30 – PAUSE
10:45 – EXERCICE FORMATIF

12:00 – DINER

13:00 – PRÉSENCES & INSTRUCTIONS


13:15 – THÉORIE
• CONCEPT GLOBAL DU DESIGN SCRIPT
• RACCOURCI DE SCRIPTAGE
• CRÉATION DE FONCTION SIMPLE
• CRÉATION DE FONCTION IMPÉRATIVE
14:30 – PAUSE
14:45 – EXERCICE FORMATIF
15:30 – PAUSE
15:45 – ÉVALUATION

17:30 – FIN DU COURS

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 2


PLANIFICATION DE LA PROGRAMMATION

Planifier une programmation


d’optimisation en 10 étapes faciles.

1. Prendre connaissance de la DU DÉBUT VERS LA FIN DE LA FIN VERS LE PAR OPÉRATION


demande d’optimisation. DÉBUT CRITIQUE
2. Valider les délais de ✓ TRÈS FACILE À CONCEVOIR.
développement de la solution ✓ SUIT LA SÉQUENCE DE
3. Valider la faisabilité de ✓ FACILE À CONCEVOIR ✓ VALIDATION RAPIDE DE LA
TRAITEMENT DE
l’optimisation (Voir API) ✓ ÉVITE TOUTES INFORMATIONS FONCTIONNALITÉ DU SCRIPT.
L’INFORMATION. ✓ TRÈS BIEN POUR LES
4. Valider le type d’utilisateur de la INUTILES.
✓ TRÈS BIEN POUR LA
programmation. ✓ TRÈS BIEN POUR OPÉRATIONS COMPLEXES
PRODUCTION DE GÉOMÉTRIE JUMELANT GÉOMÉTRIE ET
---------------------------------------------- L’EXPORTATION OU
L’IMPORTATION DE DONNÉES. DONNÉES.
5. Analyser le processus de travail − FACILE DE PERDRE LA ✓ MINIMISE LA RECHERCHE DE
et schématiser la DIRECTION DU SCRIPT.
programmation. − NÉCESSITE SOUVENT UN
− NÉCESSITE SOUVENT UN NOEUD AU DÉBUT DU
NETTOYAGE. TRAVAIL.
6. Choisir une orientation de NETTOYAGE.
programmation. − GÉNÈRE SOUVENT DES ✓ NÉCESSITE PEU DE NETTOYAGE
− GÉNÈRE SOUVENT DES
7. Programmer. RÉPÉTITIONS DANS LES
RÉPÉTITIONS DANS LE SCRIPT. − DIFFICILE À CONCEVOIR.
ENTRÉES
8. Tester la programmation sur une − VALIDATION TARDIVE DE LA −
maquette de travail. FONCTIONNALITÉ DU SCRIPT
− VALIDATION TARDIVE DE LA GÉNÈRE SOUVENT DES
FONCTIONNALITÉ DU SCRIPT RÉPÉTITIONS DANS LES
9. Organiser et documenter le ENTRÉES.
script.
10. Faire la mise en place.

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 3


ANNOTATION DE SCRIPT

LES GROUPES
ONGLET MODIFIER > CRÉER UN GROUPE
MENU CONTEXTUEL > CRÉER UN GROUPE (CTRL + G)

• TRÈS UTILE POUR LA DIVISION VISUELLE DES


OPÉRATIONS DU SCRIPT
• CODE COULEUR POUR IDENTIFIER LE TYPE
D’OPÉRATION EFFECTUÉE
• MODIFICATION DE LA TAILLE DU TEXTE POSSIBLE
• TRÈS RAPIDE À CRÉER
• IMPOSSIBLE DE CRÉER UN GROUPE DANS UN
GROUPE.

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 4


ANNOTATION DE SCRIPT

LES STANDARDS DE VOTRE FORMATEUR

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 5


ANNOTATION DE SCRIPT

LES NOTES
ONGLET MODIFIER > CRÉER UNE NOTE (CTRL + W)

• TRÈS UTILE POUR LES DESCRIPTIONS


MULTILIGNES
• SOUVENT UTILISÉ POUR DÉCRIRE LA
FONCTIONNALITÉ OU LA PROVENANCE D’UN
NOEUD PERSONNALISÉ
• SE DIFFÉRENCIE FACILEMENT DES NOEUDS DU
SCRIPT.
• RAPIDE À CRÉER
• IL EST PRIMORDIAL DE LES GROUPER POUR
QU’ELLES SOIENT VISIBLES
• AUCUNE MODIFICATION POSSIBLE DE LA TAILLE
DU TEXTE

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 6


ORGANISATION DE SCRIPT

ALIGNEMENT:

Fonctionnement :
On sélectionne les noeuds à aligner, puis on clique
droit et on sélectionne l’option d’alignement désiré.

• Moyenne x → Centre verticalement


• Gauche → Aligne le côté gauche
• Droite → Aligne le côté droit
• Moyenne y → Centre horizontalement
• Haut → Aligne le haut
• Bas → Aligne le bas
• Distribuer y → Distance verticale égale
• Distribuer x → Distance horizontale égale

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 7


ORGANISATION DE SCRIPT

OPTION D’ARRANGER L’AFFICHAGE DES


NOEUDS:

Fonctionnement :
On sélectionne les noeuds à arranger, dans l’ongle
Modifier > Arranger l’affichage des noeuds (CTRL+L)

+ Bien pour l’organisation à l’intérieur d’un groupe.


+ Bien pour faire des alignements rapides.

- Ne pas appliquer à l’ensemble d’un script.


- Peut créer des enchevêtrements de connecteur
non-désiré.

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 8


ORGANISATION DE SCRIPT

LES INPUTS/OUTPUTS

Code block contenant des variables


Renommées “INPUT” et “OUTPUT”
À chaque entrée et sortie d’un groupe

✓PERMET UNE RÉORGANISATION DE LA


DISPOSITION DES VARIABLES
✓PERMET UNE LECTURE RAPIDE DU CHEMINEMENT
DE L’INFORMATION
✓ÉVITE LE “SPAGHETTI MESS”

−RALENTI LA CRÉATION DU SCRIPT


−PERMET DE PRÉVOIR LES VARIABLES NÉCESSAIRS E
À UNE OPÉRATION.

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 9


PUBLICATION DE NOEUD

LES NŒUDS PERSONNALISÉS


OGLET MODIFIER > CRÉER UN NOEUD À PARTIR DE LA SÉLECTION
MENU CONTEXTUEL > CRÉER UN NOEUD PERSONNALISÉ (CTRL +
D)

• TRÈS UTILE POUR RÉDUIRE L’ESPACE QUE PREND


LE SCRIPT
• RÉDUIT LE TEMPS DE COMPILATION, CAR LES
APERÇUS NE SONT PAS CRÉÉS POUR CHAQUE
ÉTAPE
• PERMET UNE RÉUTILISATION D’UNE SECTION DE
SCRIPT
• NÉCESSITE UNE PUBLICATION DU NOEUD
PERSONNALISÉ POUR L’EXÉCUTION DU SCRIPT
PAR UN PAIR.

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 10


PUBLICATION DE SCRIPT

LE LECTEUR DYNAMO ET LES ENTRÉES

COMMENT UTILISER LE LECTEUR DYNAMO COMMENT DÉFINIR UNE ENTRÉE


1.Créer un script et l’enregistrer dans un 1. Sélectionner un noeud d’entrée.
emplacement réseau. 2. Clic-Droit → est une entrée.
2.Ouvrir le lecteur Dynamo (Dynamo Player) Onglet 3. Double clic sur le titre du noeud.
Gérer → Programmation visuelle 4. Renommer le noeud selon le nom de l’entrée.
3.Sélectionner le dossier contenant le Script. 5. Sélectionner une valeur par défaut.
4.Sélectionner le script désiré. 6. Valider le visuel dans le lecteur Dynamo.
5.Valider les entrées. 7. Répéter pour chaque entrée.
6.Exécuter le script.
7.Attendre les résultats. N.B. L’ordre des entrées dans le Dynamo Player
suit l’ordre de création des noeuds dans le Script.

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 11


PUBLICATION DE SCRIPT
POUR L’UTILISATEUR POUR LES ÉDITEURS DU SCRIPT

• Utiliser le Lecteur Dynamo. • Avoir une bonne organisation dans les scripts.

• Minimiser les entrées à modifier. • Grouper les différentes fonctionnalités/étapes


avec un code couleur standardisé.
• Préconiser les sélecteurs de données.
• Ajouter des notes descriptives pour les éléments
• Ajouter le Numéro de projet en préfixe pour sujets à des modifications ultérieures.
les scripts particuliers.
Ex : 01-2345_CalculSuperficie.dyn • Ajouter des notes pour les références à du
contenu téléchargé. (Package)
• Décrire précisément la fonctionnalité
du script dans le nom. • Éviter les enchevêtrements de connecteurs
Ex : (Spaghetti mess) en utilisant des CodeBlock
CréationCompoPafondPlancherToiture_Métriq d’entrée/sortie
ue.dyn
• Utiliser un dossier de travail pour
• Utiliser un langage compris par tous. les scripts qui ne sont pas optimiser.
Ex : OnOff_BullesAxes.dyn

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 12


PAUSE

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 13


EXERCICE FORMATIF

ÉNONCÉ DE L’EXERCICE
Faire l’organisation du script de création d’hôtel
fournis par l’enseignant.

TÂCHES
✓ Grouper les différentes suites de fonctions
✓ Attribuer un titre et une couleur selon les
standards de l’enseignant.
✓ Faire des alignements afin de corriger les
enchevêtrements de connecteur

POINTS D’ÉVALUATION

(Aucun)

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 14


DINER

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 15


DÉROULEMENT DU COURS

9:00 – PRÉSENCES & INSTRUCTIONS


9:15 – THÉORIE
• PLANIFICATION DE LA PROGRAMMATION
• ANNOTATION DE SCRIPT
• ORGANISATION DE SCRIPT
• PUBLICATION DE SCRIPT ET DE NOEUD
10:30 – PAUSE
10:45 – EXERCICE FORMATIF

12:00 – DINER

13:00 – PRÉSENCES & INSTRUCTIONS


13:15 – THÉORIE
• CONCEPT GLOBAL DU DESIGN SCRIPT
• RACCOURCI DE SCRIPTAGE
• CRÉATION DE FONCTION SIMPLE
• CRÉATION DE FONCTION IMPÉRATIVE
14:30 – PAUSE
14:45 – EXERCICE FORMATIF
15:30 – PAUSE
15:45 – ÉVALUATION

17:30 – FIN DU COURS

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 16


CONCEPT GLOBAL DU DESIGN SCRIPT

• Il s’utilise dans les CodeBlocks.


• Sert à réduire l’ampleur visuelle des scripts
• Très utile dans le cas d’équations
mathématiques complexes
• Bonne façon de mieux définir les variables d’une
fonction.
• Plus complexe à visualiser
• Peu être généré directement à partir de script.
(Node to Code)

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 17


NŒUD DE CODE (CODE BLOCK)

• Les “CodeBlocks” sont très utile


pour l’organisation des scripts

• L’information “entre guillemets” est


considéré en tant que String

• L’information numérique est


considéré en tant que Double.

• L’information texte est considéré en


tant que Variable.

• L’information précédé de // est


considéré en tant que
commentaires.

• Le “CodeBlocks” permettent
rapidement de procéder à des
formule plus élaborée.

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 18


RACCOURCI DE SCRIPTAGE

SYNTAXE TYPIQUE

Opération mathématique simple

Addition, Soustraction, → +, -
Multiplication, division → *, /

Modulo → %

Opération logique simple

Est égale à → ==
N’est pas égale à → !=
Plus grand/petit → <, >

N’est pas égale à → <=, >=

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 19


RACCOURCI DE SCRIPTAGE

SYNTAXE TYPIQUE

Création de liste et selection d’item


Le definition d’une liste s’écrit en utilisant les
accolades { } et en séparant les valeur par des
virgules , .
Ex : x = {1,2,3}
La selection d’un item se fait par l’utilisation des
crochet [ ] pour contenir l’index de l’item à
sélectionner.
Ex : x[1]
Si plusieurs pairs d’accolades { } sont utilisées le
résultat sera une liste de listes.
Si plusieurs pairs de crochets [ ] sont utilisées le
résultat sera l’objet dans une liste de listes.

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 20


RACCOURCI DE SCRIPTAGE

Noeud de création
What.How(Parameters)

Point.ByCoordinates(0,1,0)
Circle.ByCenterPointRadius(point,10)

Noeud d’action À
Object.Action(Parameters)

Pt.Add(Vec)

Noeud de requête
What.What(Objet)

surface.Perimeter
surface.Area

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 21


LES COMBINAISONS RAPPEL

Le plus court
L’operation s’effectue autant qu’il y a des
valeur pour chaque variable.
Le plus long
L’operation s’effectue pour chaque
variable de la plus longue liste en
utilisant la dernière valeur
Produit vectoriel
L’operation s’effectue pour chaque
combinaison de variable possible.
ATTENTION ceci peut créer d’immense
flots d’operation et surcharger le logiciel

LISTE À NIVEAUX:
@L2 → Applique la fonction à ce niveau de
liste
@@L2 → Applique la fonction à ce niveau de
liste et organise les résultat selon
l’organisation de la liste d’entrée

PRINTEMPS 2019 PAR: JEAN-PHILIP TREMBLAY 22


COMBINAISONS EN DESIGN SCRIPT
GUIDE DE RÉPLICATION

Pour une combinaison au plus court


On indique <1> après chaque variable d’une
fonction.

Exemple :
Line.ByStartPointEndPoint(point1<1>,point2<1>)

Pour une combinaison au plus long


On indique <1L> après chaque variable d’une
fonction.

Exemple :
Line.ByStartPointEndPoint(point1<1L>,point2<1L>)

Pour une combinaison au plus court


On indique <x> après chaque variable d’une
fonction. X donnant l’ordre d’organisation du
résultat.

Exemple :
Line.ByStartPointEndPoint(point1<1>,point2<2>)
Ou
Line.ByStartPointEndPoint(point1<2>,point2<1>)

PRINTEMPS 2019 PAR: JEAN-PHILIP TREMBLAY 23


CRÉATION DE FONCTION SIMPLE

DÉFINITION DE FONCTION

1 CodeBlock pour définir la fonction.


1 CodeBlock pour l’utiliser.

La nomenclature est la suivante:


def NomDeLaFonction (variable1,variable2,etc.)

{
Ligne de Code de la fonction ;
Ligne de Code de la fonction ;
Ligne de Code de la fonction ;

Return = variable de sortie ;


};

PRINTEMPS 2019 PAR: JEAN-PHILIP TREMBLAY 24


CRÉATION DE FONCTION IMPÉRATIVE

DÉFINITION DE FONCTION “IF …ELSE” DÉFINITION DE FONCTION “FOR” DÉFINITION DE FONCTION “WHILE”
La nomenclature est la suivante: La nomenclature est la suivante: La nomenclature est la suivante:
def NomDeLaFonction (variable1,variable2,etc.) def NomDeLaFonction (variable1,variable2,etc.) def NomDeLaFonction (variable1,variable2,etc.)
{
return = [Imperative] { {
{ return = [Imperative] return = [Imperative]
If (quelquechose est vrai ou faux)
{ { {
Code de la fonction si vrai; for (V in variable1) While (quelquechose est vrai ou faux)
} { {
else Code de la fonction ;
Code de la fonction à applique à V;
{
Code de la fonction si faux; } Code qui modifie la condition ;
} } }
}
}; }; }
};
N.B. L’expression elif (else + if)
pour inclure un autre test.

PRINTEMPS 2019 PAR: JEAN-PHILIP TREMBLAY 25


EXERCICE FORMATIF

ÉNONCÉ DE L’EXERCICE
Améliorer ou raccourcir certaine section du script
fournis par l’enseignant à l’aide de Code Block.

TÂCHES
À l’aide d’un CodeBlock
✓ Créer une sélection de item dans une liste.
✓ Simplifier un calcul mathématique
✓ Créer une fonction simple.
✓ Faire une formule contitionnel.

POINTS D’ÉVALUATION

(Aucun)

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 26


PAUSE

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 27


ÉVALUATION

ÉNONCÉ DE L’EXERCICE
Organiser, préparer la mise en place et simplifier
votre script de création d’hôtel à l’aide des
techniques enseignées.

TÂCHES
✓ Définir les entrées pour l’utilisation du Dynamo
Player.
✓ Grouper et organiser les différentes suites de
fonctions
✓ Simplifier un calcul mathématique par
CodeBlock.

POINTS D’ÉVALUATION

❑ Respect des consignes - 6pts


❑ Clarté du script - 3pts
❑ Résultat du script - 1pts

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 28


FIN DU COURS

HIVER 2020 PAR : JEAN-PHILIP TREMBLAY 29

Das könnte Ihnen auch gefallen