Passer au contenu principal

Fractionnement de rapport en groupes avec des conditions personnalisées dans les quantités BIM

Mis à jour cette semaine

Pourquoi avez-vous besoin de l'utiliser ?

Le Mécanisme de Division de Kreo aide un utilisateur à filtrer rapidement des éléments de votre décomposition selon une condition/paramètre particulier et à obtenir un rapport basé sur ce filtrage en quelques clics, où la condition est une formule, applicable à chaque élément qui correspond au filtre appliqué. Chaque réponse unique à cette formule forme un groupe distinct dans un rapport basé sur un modèle.

Suivez ces 5 étapes rapides pour utiliser le Mécanisme de Division :

2. Créez un nouveau Modèle

3. Glissez-déposez votre filtre dans le groupe approprié du modèle.

4. Ajoutez une nouvelle colonne et nommez-la « Splitter »

📝Remarque ! Splitter est un nom obligatoire. Vous ne pouvez pas le changer !

5. Insérez la ou les conditions appropriées dans la colonne « Splitter » au niveau du groupe.6. Créez un rapport basé sur ce modèle.

📝Remarque ! Lorsque vous utilisez un Extracteur de Base dans votre formule, il doit avoir été ajouté dans le Tableau de Décomposition au préalable !

📝Remarque ! Lorsque vous ajoutez un Paramètre Partagé dans la formule, insérez son nom de la même manière qu'il est utilisé dans la décomposition de votre modèle.

Règles pour insérer des conditions :

- Commencez à insérer des conditions par le signe « = »

- Utilisez « ; » pour séparer les conditions entre elles

- Insérez le texte entre « », par exemple : « level 1 »

- Insérez le nom de la colonne entre « [ ] », par exemple : [Net Area]

Exemples Généraux :

1. Imaginons que nous ayons besoin de diviser les colonnes en fonction de leur hauteur dans les groupes suivants :

< 3000 mm
3000 - 4500 mm
4500 - 6000 mm
Ensuite, nous devons insérer la condition suivante : ="Concrete columns: " + (Range(Convert([Length]; mm); 3000; 4500; 6000)) + " mm", ce qui signifie d'abord que nous convertissons la colonne Length en mm à l'aide de l'option Convert, ensuite nous divisons les éléments dans les groupes pertinents à l'aide de l'option Range, puis nous insérons " mm". Enfin, nous ajoutons le résultat à "Concrete columns: ". Le résultat sera le suivant : Concrete columns: <3000 mm.

2. Imaginons que nous ayons besoin de diviser les pieux en fonction de leur longueur et de leur largeur dans les groupes suivants :

150 mm x 150 mm
200 mm x 200 mm
350 mm x 350 mm
500 mm x 500 mm
Ensuite, nous devons insérer la condition suivante : =Concatenate(Nearest(v(Convert([VerticalBB.SectionMaxDimension];mm);Convert([VerticalBB.SectionMinDimension]; mm)); v(150;150); v(200;200);v(350;350);v(500;500)); " mm x "; " mm"), ce qui signifie d'abord que nous convertissons les colonnes des Extracteurs de Base VerticalBB.SectionMaxDimension et VerticalBB.SectionMinDimension en mm à l'aide de l'option Convert, ensuite nous les mettons dans un vecteur à l'aide de l'option « v », puis nous calculons la paire la plus proche pour ce vecteur à l'aide de l'option « Nearest ». Enfin, nous insérons " mm x " et " mm" à l'aide de l'option « Concatenate ».

Regardez notre tutoriel détaillé sur l'utilisation du mécanisme de division de Kreo :


Possibilités avancées offertes par le Mécanisme de Division :

1. Calculs mathématiques :

Les opérations suivantes sont prises en charge par Kreo : « + », « - », « * », « / », « ^ », par ex. : [Net Area] + 3 * [Length]


Kreo prend également en charge les fonctions suivantes :

- Min(valeur1; valeur2;...) pour trouver la valeur minimale parmi plusieurs, par ex. : =Min([Net Area]; [VerticalBB.Height] * [VerticalBB.SectionMaxDimension])
- Max(valeur1; valeur2;...) pour trouver la valeur maximale parmi plusieurs, par ex. : =Max([Net Area]; [VerticalBB.Height] * [VerticalBB.SectionMaxDimension])
- Average(valeur1; valeur2;...) pour trouver la valeur moyenne de plusieurs, par ex. : =Average([Net Area]; [VerticalBB.Height]; [VerticalBB.SectionMaxDimension])
- Sum(valeur1; valeur2;...) pour trouver la somme de plusieurs valeurs. Son équivalent est : value1 + value2 + ...
Par ex. : =Sum([Net Area]; [VerticalBB.Height]; [VerticalBB.SectionMaxDimension])

2. Arrondissement :

- Round(valeur) pour arrondir la valeur à 2 décimales, par ex. : si Net Area = 1.1588, alors =Round([Net Area]) est 1.16
- Round(valeur, chiffres) pour arrondir la valeur à un certain nombre de chiffres, par ex. : si Net Area = 1.1588, alors =Round([Net Area]; 3) est 1.159
- RoundDown(valeur) pour supprimer la partie décimale, par ex. : si Net Area = 1.1588, alors =RoundDown([Net Area]) est 1
- RoundUp(valeur) pour obtenir l'entier minimum supérieur ou égal à la valeur passée, par ex. : si Net Area = 1.1588, alors =RoundUp([Net Area]) est 2
- RoundEps(valeur, pas) pour arrondir le nombre à un multiple du pas spécifié, par ex. : si Net Area = 1.1588, alors =RoundEps([Net Area]; 0,05) est 1,15 (multiple de 0.05)

3. Logique :

- Les opérations logiques AND, OR sont également prises en charge par Kreo, par ex. :
IF(expression logique; valeur si vrai; valeur si faux)

Prêtez attention aux exemples suivants :
- IF([Net Area] < 10; “less than 10”; “bigger than 10”), si Net Area est égal à 6, alors le résultat est « less than 10 »
- IF([Net Area] < 10; 10; IF([Net Area] < 20; 20; 30)) - le résultat est 10, 20 ou 30, selon la plage dans laquelle se trouve Net Area
- IF([Net Area] < 10 AND [Net Volume] >= 12; “Type A”; ”Type B”), si Net Area est égal à 6 et Net Volume est 11, alors le résultat est « Type B »
N.B ! Les deux valeurs (« valeur si vrai » et « valeur si faux ») doivent avoir le même type, c'est-à-dire texte ou numérique.

4. Texte :

*Les valeurs suivantes sont utilisées dans les exemples :

Length = 1.3,
Net area = 2.2,
Storey = Level 1
Category = Wall

- Search(texte requis; dans le texte) pour trouver le texte pertinent dans un endroit particulier. Le résultat sera vrai ou faux. Cette option doit être utilisée dans IF pour vérifier la condition spécifiée, par ex. : si ElementType = Reinforced Round Column 300 mm diameter, alors =IF(Search([ElementType]; “round”; [diameter] ^ 2 * 3.14 / 4; [width] * [height]), où Result est la Section Area de la colonne
- v(param1; param2;...) pour combiner plusieurs nombres en un vecteur (paire, triple, etc.), par ex. : v([VerticalBB.Height];[VerticalBB.SectionMaxDimension]) ou v(2;4)
- valeur + texte OU Concatenate(valeur; texte) pour ajouter le texte à la valeur numérique, par ex. : =[Length] + “m length”. Result: 1.3 m length
- texte1 + texte2 + ... OU Concatenate(texte1; texte2, ...) pour coller ensemble deux textes différents, par ex. : =[Category] + “ on ” + [Storey], Résultat : Wall on Level 1.
- Concatenate(v(...)) pour coller le vecteur (avec un « , » comme séparateur), par ex. : =Concatenate(v([Length];[NetArea])), Résultat : 1.3, 2.2
- Concatenate(v(...); texte1; texte2; ...) est un collage spécifique de vecteur, où chaque texte est ajouté après chaque valeur du vecteur, par ex. : =Concatenate(v([Length];[NetArea]); “ m, ”; “ m2”) Résultat : 1.3 m, 2.2 m2

N.B ! Vous pouvez également utiliser uniquement texte1, par ex. : =Concatenate(v([Length];[NetArea]); “ x ”), Résultat : 1.3 x 2.2

- Join(séparateur de texte; texte1; texte2; ...) pour coller ensemble une chaîne avec un séparateur, par ex. : =Join(“ on the ”; [Category]; [Storey])), Résultat : Wall on the Level1
- Join(séparateur de texte; v(...)) pour coller ensemble un vecteur avec un séparateur, par ex. : =Join(“ x “, v([Length];[NetArea])), Résultat : 1.3 x 2.2

5. Plage :

- Range(valeur; plage1,; plage2; plage3;...) - le système accepte plage1...plageN comme segments et trouve dans quelle plage la valeur se situe.
Il existe l'option RangeRight pour contrôler dans quel segment la valeur apparaît, lorsque valeur = plageN

Exemple :
Range([Net Area]; 1; 2; 3)

*Si Net Area = 0.5, alors le résultat est < 1
Si Net Area = 1.5, alors le résultat est 1 - 2
Si Net Area = 3, alors le résultat est 2 - 3, N.B ! Si nous utilisons RangeRight([Net Area]; 1; 2; 3), alors avec Net Area = 3, le résultat est >3

6. Le plus proche :

- Nearest(valeur; valeur1; valeur2; valeur3;...) pour trouver la valeur la plus proche

Exemple :
Nearest([Net Area]; 1;2;3)
*Si Net Area = 1.3, alors le résultat est 1
Si Net Area = 1.5, alors le résultat est 1 (comme 1 et 2 sont égaux, le système prend 1 comme la valeur minimale insérée)

- Nearest(v(...); v(...); v(...); ...) pour trouver le vecteur le plus proche

Exemple :
Nearest(v([Length]; [Width]); v(200; 200); v(300; 300))
*Si Length = 220 et Width = 250, alors le résultat est v(200; 200)

7. Unités :

Cette option est utilisée pour convertir les unités de mesure.

La valeur suivante est utilisée dans l'exemple :
Length = 1.115 m

- Convert(valeur, unité) pour convertir la valeur à l'unité de mesure requise, où le résultat est un nombre, par ex. : =Convert([Length]; mm) * 0.5, Résultat : 557.5
- ConvertS(valeur, unité) pour convertir la valeur à l'unité de mesure requise avec formatage, où le résultat est un nombre arrondi à 2 chiffres avec l'unité de mesure, par ex. : =ConvertS([Length] * 0.5, mm), Résultat : 557.5 mm
- ConvertS(valeur, unité, chiffres) pour convertir la valeur à l'unité de mesure requise avec formatage et la possibilité de contrôler l'arrondi, par ex. : =ConvertS([Length] * 0.5, mm, 0), Résultat : 558 mm

Les unités de mesure suivantes sont prises en charge par Kreo :

Length:
M - mètre
CM - centimètre
MM - millimètre
IN - pouce
YD - yard

Area:
M2 - mètre carré
IN2 - pouce carré
FT2 - pied carré
YD2 - yard carré

Volume:
M3 - mètre cube
IN3 - pouce cube
FT3 - pied cube
YD3 - yard cube

Mass:
KG - kilogramme
T - tonne métrique
LB - livre ou masse en livres
LT - tonne longue (tonne de poids ou tonne impériale)
ST - stone
TON - tonne courte
CWT - short hundredweight

8. Autre :

- Value(texte) pour convertir une chaîne en une valeur. Cette option est importante, lorsque la colonne est un paramètre partagé, car toute valeur qu'elle contient est considérée comme une chaîne par défaut, par ex. Kreo spécifie la colonne Width comme texte, alors dans un tel cas =[Width] * 0.5 est invalide, tandis que =Value([Width]) * 0.5 est la bonne.

Avez-vous trouvé la réponse à votre question ?