Lors de la création d’une famille paramétrique dans Revit, comment résoudre le problème d’un paramètre de dimension (ex: diamètre d’arbre) qui, lorsqu’il est augmenté, réduit la taille de l’objet au lieu de l’agrandir, et comment gérer les erreurs d’unités (comme ‹ 1 › transformé en ‹ 1m² ›) lors de l’utilisation de formules inverses pour corriger ce comportement ?
Ce comportement, bien que déroutant pour les utilisateurs habitués à AutoCAD, est une manifestation de la logique de Revit concernant les familles paramétriques et la gestion rigoureuse des unités. Voici une démarche experte pour comprendre et résoudre ces problématiques :
-
DIAGNOSTIC DU COMPORTEMENT D’ÉCHELLE INVERSÉE
- Cause probable : L’échelle inversée se produit généralement lorsque le paramètre que vous modifiez est utilisé comme diviseur dans une formule qui définit la géométrie de l’objet. Par exemple, si une longueur est définie par
Longueur_Base / Parametre_Echelle, augmenterParametre_Echelleréduira laLongueur_Base. Ce n’est pas un bug, mais une conséquence directe de la formule appliquée. - Vérification : Examinez attentivement les contraintes et les formules qui lient votre paramètre
Diametreà la géométrie de l’arbre dans l’éditeur de famille. Assurez-vous que le paramètre est directement lié à la dimension souhaitée ou qu’il est utilisé comme un multiplicateur (facteur d’échelle) et non un diviseur.
- Cause probable : L’échelle inversée se produit généralement lorsque le paramètre que vous modifiez est utilisé comme diviseur dans une formule qui définit la géométrie de l’objet. Par exemple, si une longueur est définie par
-
COMPRENDRE LA GESTION DES UNITÉS DANS LES FORMULES REVIT
- Rigidité des unités : Contrairement à AutoCAD qui est plus permissif, Revit est un logiciel orienté objets et fortement typé en unités. Chaque paramètre a un type (Longueur, Nombre, Angle, etc.).
- Cohérence requise : Dans une formule, Revit exige une cohérence dimensionnelle. Si vous avez un paramètre de type
Longueur(ex:Diametreen mètres), un simple1n’a pas de dimension. Revit tente alors d’interpréter le1pour équilibrer les unités, ce qui peut mener à des erreurs comme1m²si le contexte l’implique pour que la formule reste valide dimensionnellement. - Exemple : Si
Diametreest de typeLongueur(en mètres), alors1 / Diametreest1 / m. Pour obtenir un facteur numérique pur, il faut diviserDiametrepar une unité de référence, par exempleDiametre / 1mpour obtenir un nombre sans unité.
-
SOLUTIONS ET BONNES PRATIQUES
-
3.1. Ajuster la logique de la famille (recommandé)
C’est la méthode la plus propre et la plus intuitive.- Paramètre de dimension directe : Si
Diametredoit contrôler directement le diamètre de l’objet, liez-le directement à la dimension du diamètre de l’arbre. AugmenterDiametredevrait alors augmenter la taille. - Paramètre de facteur d’échelle (type « Nombre ») : Si vous souhaitez un paramètre pour un facteur d’échelle pur (ex: 2 pour doubler, 0.5 pour réduire de moitié), créez-le de type
Nombre. Dans ce cas, une valeur de2doublerait la taille, et0.1la réduirait de dix fois. La formule pour une dimensionMa_Longueurserait alors simple :Longueur_Base * Facteur_Echelle.
- Paramètre de dimension directe : Si
-
3.2. Corriger le comportement inversé via une formule (si le paramètre doit rester de type Longueur)
Si vous devez conserver un paramètre de typeLongueur(Diametre) qui se comporte de manière inversée, créez un paramètre intermédiaire (ex:Facteur_Inverse) pour corriger cela.-
Cas 1: Obtenir un facteur numérique inverse
Si vous avez besoin d’un facteur numérique (sans unité) qui est l’inverse de votreDiametre(ex: pour multiplier une autre dimension), utilisez la formule suivante pour un paramètre de typeNombre:
Facteur_Inverse = 1 / (Diametre / 1m)
(Remplacez1mpar l’unité de longueur par défaut de votre projet si elle est différente, ex:1mmou1ft).
Cette formule diviseDiametrepar son unité pour obtenir une valeur numérique, puis prend l’inverse. -
Cas 2: Obtenir une longueur inverse (comme dans votre cas)
Votre solution1m² / Diametre * 1000est un contournement astucieux qui fonctionne car :1m²fournit une unité de surface.- Divisé par
Diametre(qui est uneLongueur), le résultat est uneLongueur(m² / m = m). - Le
* 1000est un facteur numérique pour ajuster la valeur finale à l’échelle désirée.
Une alternative plus explicite et souvent plus claire pour obtenir une longueur inverse pourrait être :
Longueur_Inverse = (1m * 1m) / Diametre
Puis, si nécessaire, ajustez avec un facteur numérique :Longueur_Inverse * Facteur_Ajustement.
-
-
3.3. Bonnes pratiques générales
- Nommage clair : Nommez vos paramètres de manière explicite (
Diametre_Reel,Facteur_Echelle_Inverse) pour faciliter la compréhension et la maintenance. - Types de paramètres : Choisissez toujours le type de paramètre le plus approprié (ex:
Nombrepour un facteur d’échelle pur,Longueurpour une dimension physique). - Test systématique : Testez toujours vos familles avec des valeurs extrêmes pour vos paramètres afin de valider leur comportement et anticiper les problèmes.
- Nommage clair : Nommez vos paramètres de manière explicite (
-
En adoptant ces méthodes, vous pourrez maîtriser la logique de Revit et créer des familles paramétriques robustes et prévisibles, même face à des comportements qui semblent initialement contre-intuitifs.