Généralités
Dans les formules, les noms de paramètres sont sensibles à la casse. Ainsi, si un nom de paramètre commence par une majuscule (par exemple, Largeur), vous devez l’écrire de la même manière dans la formule. Si vous utilisez une minuscule dans la formule (par exemple, largeur * 2), la formule ne sera pas reconnue.
Il est aussi recommandé de ne pas utiliser un tiret (-) lors de l’attribution d’un nom de paramètre. Celui-ci sera considéré comme un opérateur de soustraction et la formule ne sera pas reconnue. Vous pouvez malgré tout contourner le problème en ajoutant des crochets :
Exemple : = Largeur min-max
Solution : = [Largeur min-max]
Enfin, un nom de paramètre ne pourra pas porter le même nom qu’un opérateur. Par exemple vous ne pourrez pas valider la création d’un paramètre qui aurait pour nom abs car il se réfère à une formule valide pour Revit (abs() : valeur absolue).
Opérateurs
Addition +
Soustraction –
Multiplication *
Division /
Exposant
X puissance Y
Y = X ^ Y
e
Constante mathématique e (=2,71828…) élevée à la puissance X.
Equivaut a e^x
exp()
π – Pi
pi()
Circonférence d’un cercle = pi() * (Rayon * 2)
Aire d’un cercle = pi() * Rayon² ou pi() * Diamètre
Racine carré
Valeur fixe = sqrt(999)
Paramètre = sqrt(Largeur)
Formule = sqrt(Largeur + Hauteur)
Logarithme
En mathématiques, le logarithme de base b d’un nombre réel strictement positif est la puissance à laquelle il faut élever la base b pour obtenir ce nombre.
Par exemple, le logarithme de 1000 à base 10 est 3, parce que 10 doit être multiplié par trois pour donner mille : 10 x 10 x 10 égale 1000
log(1000)
Forcer les paramètres de type oui/non
Forcer le Oui = 1 < 2
Forcer le Non = 1 > 2
Conditionnel
IF (<condition>, <resultat-si-vrai>, <resuItat-si-faux>)
Comparaison
< Strictement plus petit que
> Strictement plus grand que
= Egal
not(A>B) A inférieur ou égal à B
not(A<B) A supérieur ou égal à B
AND Toutes les conditions sont remplies
OR L’une des conditions est remplie
NOT La déclaration est fausse
Comparaison et conditionnel
IF & AND : if ( and ( x = 1 , y = 2) , 8 , 3 )
IF & OR : if ( or ( A = 1 , B = 3 ) , 8 , 3 )
IF imbriquées : if (Longueur < 35 mm , 35 mm , if (Longueur < 50 mm , 50 mm, Longueur))
Valeur absolue
abs(-x)
Trigonométrie
RAPPEL sin α = Opp / Hyp cos α = Adj / Hyp tan α = Opp / Adj
Valeurs connues : Opp + Adj
Hyp = sqrt(Opp² + Adj²)
α = atan(Opp / Adj)
β = atan(Adj / Opp)
Valeurs connues : Opp + Hyp
Adj = sqrt(Hyp²- Opp ²)
α = asin(Opp / Hyp)
β = acos(Opp / Hyp)
Valeurs connues : Adj + Hyp
Opp = sqrt(Hyp² – Adj²)
α = acos(Adj / Hyp)
β = asin(Adj / Hyp)
Valeurs connues : Hyp + α
Opp = Hyp * sin(α)
Adj = Hyp * cos(α)
β = 90° – α
Valeurs connues : Hyp + β
Opp = Hyp * cos(β)
Adj = Hyp * sin(β)
α = 90° – β
Valeurs connues : Opp + β
Adj = Opp * tan(β)
Hyp = Opp / cos(β)
α = 90° – β
Valeurs connues : Adj + α
Opp = Adj * tan(α)
Hyp = Adj / cos(α)
β = 90° – α
Valeurs connues : Opp + α
Adj = Opp / tan(α)
Hyp = Opp / sin(α)
β = 90° – α
Valeurs connues : Adj + β
Opp = Adj /tan(β)
Hyp = Adj / sin(β)
α = 90° – β
Conversion d’un angle (degré) en pente (%)
Plages
Valeurs de départ :
- valeur_utilisateur
- valeur_min
- valeur_max
vaIeur_actuelle = if (valeur_utilisateur < valeur_min, valeur_min, if (valeur_utilisateur > valeur_max, valeur_max, valeur_utilisateur))
Arrondi
round(x)
round(3.1) = 3
round(3.5) = 4
roundup(x)
roundup(3.1) = 4
rounddown(x)
rounddown(3.7) = 3
A bientôt. AGOBIM.
Est-ce possible de laisser un message à l’utilisateur?
Oui, tout dépend pour qu’elle raison laisser un message. Tu peux créer une annotation et rajouter une propriété de visibilité, en fonction d’une condition que tu aura choisis.
L’idéal est d’utiliser le bouton Modifier l’info bulle afin de laisser une indication à l’utilisateur.
Est-il possible de lié un paramètre type « nombre entier » avec une longueur ?
Exemple : A (longueur) = 5.6mm, B (Nombre entier) = roundUp(A)
Je n’arrive pas a me débarrasser du soucis d’unités.
Bonjour,
a = 5.6
b = roundup(a/1)
Bonjour,
Est-ce possible de récupérer la valeur de l’échelle de la vue en cours afin de l’utiliser dans les calculs de la famille?
Merci
Via Dynamo seulement.
Cdt
Bonjour,
Pour faire suite à la question de Marcel Goulet au sujet de l’obtention de l’échelle courante de la vue, vous avez préciser qu’il fallait procéder via Dynamo seulement. Je suis familier avec Dynamo, mais je n’arrive pas à comprendre comment obtenir le résultat dans la famille pour que le chiffre soit utiliser dans la vue.