Revit C# – Les bases pour la programmation

La syntaxe générale

Commençons par une bonne nouvelle : comme C# est un langage compilé, l’éditeur va vous aider dans le respect de la syntaxe.

Le compilateur

Quand on parle de langage de programmation, on parle de langage pour l’humain. Vous écrivez un code dans un langage que vous pouvez relire ou qu’un autre peu relire. Par contre, un ordinateur ne comprend que le langage machine, le langage binaire (1001111011110100111000…). Pour passer de l’un a l’autre, la conversion se fait soit au moment de l’exécution du code (langage interprété), soit avant (langage compilé). Ainsi, il faut d’abord compiler le code avant de l’exécuter. Cela représente une étape de plus, mais apporte beaucoup d’avantage. Le principale avantage est que le compilateur détecte les erreurs de syntaxe.

Tout d’abord, il faut préciser que un caractère majuscule est différent d’un caractère minuscule.

HauteurMur, hauteurmur, hauteurMur ne représente pas la même chose.

Le code est composé d’instruction que l’on écrit à chaque ligne. La fin d’une instruction est marquée par un point-virgule ( ; ). Le saut de ligne n’a donc pas d’influence.
la ligne suivante est valide :

double HauteurMur  = 2.5 ; HauteurMur = HauteurMur + 1.0 ;

Les caractères espace ne sont utiles que pour lever une ambiguïté.
Les deux lignes suivantes sont équivalentes :

double a = HauteurMur ( b ) ; 
double a=HauteurMur(b);

Par contre, cette ligne est erronée :

doublea=HauteurMur(b);

les caractères { et } délimitent les portions de code. Ces caractères délimitent par exemple le code d’une fonction :

double HauteurMur( double valeur) {
  return valeur * 2.0 ; 
}
double a = HauteurMur(2.5); // maintenant a vaut 5 !

Les variables

Les variables doivent être initialisées  en C# avant d’être utiliser,  et ne doivent être initialisées qu’une fois.

Ainsi, il ne faut pas écrire :

a = 2 ; 
b = a + 5 ;
a = 5 ;

mais

int a = 2 ;
int b = a + 5 ;
a = 5 ;

A quoi cela sert d’initialiser les variables ? Nous allons répondre à cette question en essayant de comprendre ce que fait le code ‘fictif’ suivant :

NombreBatiment = 2 ;
NomBatiment ="Batiment principal" ;
NombreNiveauBatiment = 2 ;
HauteurMur = 2.5 ;
HauteurTotaleConstructions = HauteurMur * NombreNiveauBatiment * NombreBatiment;

Si vous avez compris que la variable ‘HauteurTotaleConstructions’ est égale à 10. Bravo !

Maintenant, étudions le code suivant :

nb = 2;
nb ="Batiment principal" ;
nnb = 2 ;
hm = 2.5 ;
htc = hm * nnb * nb;

Et bien, ce code est erroné ! En effet, multiplier un texte par un nombre n’a pas de sens, ou plutôt n’a pas un résultat clairement défini dans le monde de la programmation.

Les types de donnée de base que l’on va principalement utiliser sont :

  • Les valeurs décimales (double).
  • Ce type de données permet de travailler avec des nombres à virgule avec une grande précision.

    exemple :

    double hauteurFenetre = 2.155 ; // la hauteur de la fenêtre en mètre
  • Les entiers (int).
  • Ce type de données est utile pour travailler avec des nombres que ne devrait pas avoir de décimale.

    exemple :

    int nombreOuverture = 2 ; // le nombre d\'ouverture dans une fenêtre
  • Les chaînes de caractères (string).
  • Ce type de données s’apparente au texte. Il a besoin d’être écrit entre guillemet (” “) afin de bien définir le début et la fin.
    exemple :

    string nomFenetre = "alu 90x215 blanc" :
  • Les booléens (bool).
  • Ce type de données est utile pour définir un état qui ne peut prendre que 2 valeurs : vrai ou faux (true ou false).
    exemple :

    bool estDisponible = true ;

Les fonctions

une fonction est une portion de code appelée ailleurs dans le code. C’est la base de la programmation procédurale. Elle a un nom, éventuellement des arguments, toujours une valeur de retour. Le nom est libre et n’amène aucune remarque ici. Les arguments doivent avoir un type. Ils précisent les valeurs d’entrée de la fonction. Le type de valeur de retour doit être renseignée.

exemple de fonction :

// Calcul de la surface selon la largeur et la hauteur. 
// La fonction accepte deux valeurs décimales en entrée et renvoi une valeur décimale.
double Surface(double largeur, double hauteur) {
  return largeur * hauteur;
}

exemple d’utilisation de la fonction :

double largeurFenetre = 0.9; 
double hauteurFenetre = 2.15: 
double surfaceFenetre = Surface(largeurFenetre, hauteurFenetre);

La condition simple.

on utilise le mot clé ‘if’ pour définir une condition simple, comme dans beaucoup de langage de programmation.

exemple :

if (hauteurFenetre > 2.4) {
 // la fenêtre est peut être trop grande 
}

En C#, on utilise plutôt la programmation objet. Par exemple, toutes les fonctions deviennent des méthodes de classe.

Fermer le menu