BIM Preflight/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "== Tests intégrés ==")
No edit summary
 
(15 intermediate revisions by the same user not shown)
Line 28: Line 28:
== Tests intégrés ==
== Tests intégrés ==


* '''Run all tests''': Runs all the tests one after the other
* '''Run all tests''': Exécute tous les tests les uns après les autres


=== Tests d'installation de FreeCAD ===
===FreeCAD setup tests===


* '''IFC4 support''': Tests if the IFC import/export system of FreeCAD is working correctly, and if the IFC4 format is available (which requires an up-to-date version of [[Arch IFC|IfcOpenShell]] and enabled in the preferences.
* '''IFC4 support''': Teste si le système d'importation/exportation IFC de FreeCAD fonctionne correctement et si le format IFC4 est disponible (nécessite une version à jour de [[Arch IFC/fr|IfcOpenShell]]) et activé dans les préférences.


=== Tests d'organisation du projet ===
===Project organization tests===


* '''Project hierarchy''': The IFC format requires at least one [[Arch Building|building]] and it is also a common practice to have one [[Arch Site|site]] and at least one [[Arch BuildingPart|level (storey)]]. This test checks if these are present in the model
* '''Project hierarchy''': Le format IFC nécessite au moins un [[Arch Building/fr|Bâtiment]] et il est également courant d'avoir un [[Arch Site/fr|site]] et au moins un [[Arch BuildingPart/fr|Etage]]. Ce test vérifie s'ils sont présents dans le modèle
* '''Buildings''': Checks that all buildings found in the model are part of a [[Arch Site|site]]
* '''Buildings''': vérifie que tous les bâtiments trouvés dans le modèle font partie d'un [[Arch Site/fr|site]]
* '''Levels''': Checks that all [[Arch BuildingPart|levels]] (building storeys) found in the model are prt of a building
* '''Levels''': vérifie que tous les [[Arch BuildingPart/fr|Etages]] (étages du bâtiment) trouvés dans le modèle sont bien d'un bâtiment
* '''Objects structure''': Checks that all objects found in the model are part of a level
* '''Objects structure''': Vérifie que tous les objets trouvés dans le modèle font partie d'un niveau


===Objects & property tests===
=== Objets et tests de propriétés ===


* '''Undefined objects''': Checks if there are objects in the model that are not BIM objects, and will therefore be exported without full BIM properties
* '''Undefined objects''': vérifie s'il y a des objets dans le modèle qui ne sont pas des objets BIM et seront donc exportés sans les propriétés BIM complètes
* '''Solids''': Checks that all objects in the model have valid solid geometry
* '''Solids''': vérifie que tous les objets du modèle ont une géométrie solide valide
* '''Explicit quantities''': Checks that all objects with length, width or height properties are [[BIM IfcQuantities|marked for explicit export]] of these quantities
* '''Explicit quantities''': vérifie que tous les objets avec des propriétés de longueur, largeur ou hauteur sont [[BIM IfcQuantities/fr|marqués pour l'exportation explicite]] de ces quantités
* '''Common Properties sets''': Checks that all BIM objects of common types (wall, door, etc...) have the corresponding "common" properry set applied (Pset_WallCommon, Pset_DoorCommon, etc)
* '''Common Properties sets''': vérifie que tous les objets BIM de types communs (mur, porte, etc ...) ont le jeu de propriétés "common" correspondant appliqué (Pset_WallCommon, Pset_DoorCommon, etc.)
* '''Property sets integrity''': Checks that all common Psets (Pset_WallCommon, Pset_DoorCommon, etc) found in the model include all and only the properties defined by the IFC standards
* '''Property sets integrity''': vérifie que tous les Psets courants (Pset_WallCommon, Pset_DoorCommon, etc.) trouvés dans le modèle incluent toutes et uniquement les propriétés définies par les normes IFC
* '''Materials''': Checks that all BIM objects have a material
* '''Materials''': vérifie que tous les objets BIM ont un matériau
* '''Standards''': Checks that all BIM objects have a [[BIM Classification|standard code]]
* '''Standards''': vérifie que tous les objets BIM ont un [[BIM Classification/fr|code standard]]


=== Tests de compatibilité ===
===Compatibility tests===


* '''Extrusions''': Checks that all BIM objects are linear extrusions
* '''Extrusions''': vérifie que tous les objets BIM sont des extrusions linéaires
* '''Standard cases''': Checks that all [[Arch Wall|walls]] and [[Arch Structure|structural elements]] are standard cases, as defined by the IFC schema
* '''Standard cases''': vérifie que tous les [[Arch Wall/fr|murs]] et [[Arch Structure/fr|éléments de structure]] sont des cas standard, tels que définis par le schéma IFC
* '''Tiny lines''': Checks that no line segment in the model is smaller than 1/32", the minimum length that Revit is able to manage...
* '''Tiny lines''': vérifie qu'aucun segment de ligne dans le modèle n'est inférieur à 1/32", la longueur minimale que Revit est capable de gérer...
* '''IfcRectangleProfileDef''': Checks that the option to export rectangular profiles as IfcRectangleProfileDef is disabled, because Revit (yes, them again) is unable to import that entity.
* '''IfcRectangleProfileDef''': vérifie que l'option d'exporter des profils rectangulaires en tant que IfcRectangleProfileDef est désactivée, car Revit (oui, encore une fois) ne peut pas importer cette entité.


== Tests personnalisés ==
==Custom tests==


L'outil de contrôle en amont vous permet également d'écrire des tests personnalisés, qui seront ajoutés après les outils intégrés dans la boîte de dialogue Contrôle en amont, et exécutés lorsque vous utilisez le bouton '''Run all tests'''. Ces tests sont écrits en Python. Ils se composent de fonctions simples dans un ou plusieurs fichiers Python. Vous pouvez effectuer toutes les opérations que vous souhaitez à l'intérieur de ces fonctions, elles doivent simplement réussir ou échouer, et en cas d'échec, afficher un message informant l'utilisateur de ce qui a échoué.
The Preflight tool also allows you to write custom tests, that will be appended after the built-in tools in the Preflight dialog, and run when using the '''Run all tests''' button. These tests are written in Python. They consists of simple functions inside one or more Python files. You can perform any operation you want inside those functions, they must just pass or fail, and in case they fail, show a message informing the user of what failed.


You can write several tests in one single Python file, or divide in several files, as you prefer. These files must be placed in $USERAPPDATA/BIM/Preflight and can be given any name (Be sure to use very unique names as to not conflict with any built-in Python module. The $USERAPPDATA folder depends on your platform/operating system (usually $HOME/.FreeCAD on linux/mac, /users/YOUR USER/Application Data/roaming/FreeCAD on windows), and can also be found by entering this in the FreeCAD Python console:
Vous pouvez écrire plusieurs tests dans un seul fichier Python ou diviser en plusieurs fichiers, selon vos préférences. Ces fichiers doivent être placés dans $USERAPPDATA/BIM/Preflight et peuvent recevoir n'importe quel nom (assurez-vous d'utiliser des noms très uniques pour ne pas entrer en conflit avec un module Python intégré. Le dossier $USERAPPDATA dépend de votre plate-forme/système d'exploitation (généralement $HOME/.FreeCAD sous linux/mac, /users/YOUR USER/Application Data/roaming/FreeCAD sous windows) et peut également être trouvé en tapant ceci dans la console Python de FreeCAD:


FreeCAD.getUserAppDataDir()
FreeCAD.getUserAppDataDir()


Inside each Python file, tests are simple functions that take no argument, and return either True if the test passed, or a string of text that will be shown to the user if the test failed.
À l'intérieur de chaque fichier Python, les tests sont des fonctions simples qui ne prennent aucun argument et renvoient soit True si le test a réussi, soit une chaîne de texte qui sera montrée à l'utilisateur si le test a échoué.


A typical test file would be like this, that should be named something like "myCustomTest.py" and placed inside $USERAPPDATA/BIM/Preflight:
Un fichier de test typique serait comme ceci, qui devrait être nommé quelque chose comme "myCustomTest.py" et placé dans $USERAPPDATA/BIM/Preflight:


import FreeCAD
import FreeCAD

Latest revision as of 12:20, 27 April 2020

Other languages:

BIM Contrôle en amont

Emplacement
Manage → Preflight check
Atelier
BIM
Raccourci
None
Voir aussi
None
 
Cette commande fait partie de BIM AddOn, Vous pouvez l'installer via le menu Outils → Addons Manager

Description

FreeCAD étant une plate-forme de modélisation très souple, les exigences sont très faibles. Vous pouvez essentiellement modéliser et organiser votre modèle BIM comme vous le souhaitez, en utilisant tous les outils offerts par FreeCAD, à la fois à partir de l'atelier BIM et d'autres ateliers. Le format IFC, cependant, a des exigences strictes, et d'autres applications BIM qui peuvent lire des fichiers IFC apportent souvent des limitations supplémentaires car elles ont plus que souvent des difficultés avec certaines entités ou la façon dont certains objets sont modélisés.

L'outil de contrôle en amont BIM vous permet d'effectuer plusieurs tests sur votre modèle pour vérifier sa compatibilité avec les normes IFC et les meilleures pratiques et vous aider à détecter les éventuels problèmes que vous pourriez vouloir résoudre.

Les résultats de la plupart des tests fournis par cet outil sont facultatifs, ce qui signifie que vous pouvez choisir d'exporter votre modèle même en cas d'échec. Vous êtes le seul à évaluer si vous avez besoin du test pour réussir ou non. Nous avons fait de notre mieux pour fournir des informations fiables afin de vous aider à prendre une décision.

Utilisation

  • Avoir un modèle ouvert dans FreeCAD, avec au moins quelques objets
  • Vous pouvez sélectionner des objets avant de lancer les tests, auquel cas vous avez la possibilité d'effectuer le test uniquement sur les objets sélectionnés
  • Appuyez sur le bouton Test All pour effectuer tous les tests ou uniquement les boutons correspondant aux tests individuels.
  • Une fois les tests terminés, appuyer sur un bouton Failed vous donnera des informations supplémentaires pour vous aider à décider si cela vous concerne ou non.

Tests intégrés

  • Run all tests: Exécute tous les tests les uns après les autres

Tests d'installation de FreeCAD

  • IFC4 support: Teste si le système d'importation/exportation IFC de FreeCAD fonctionne correctement et si le format IFC4 est disponible (nécessite une version à jour de IfcOpenShell) et activé dans les préférences.

Tests d'organisation du projet

  • Project hierarchy: Le format IFC nécessite au moins un Bâtiment et il est également courant d'avoir un site et au moins un Etage. Ce test vérifie s'ils sont présents dans le modèle
  • Buildings: vérifie que tous les bâtiments trouvés dans le modèle font partie d'un site
  • Levels: vérifie que tous les Etages (étages du bâtiment) trouvés dans le modèle sont bien d'un bâtiment
  • Objects structure: Vérifie que tous les objets trouvés dans le modèle font partie d'un niveau

Objets et tests de propriétés

  • Undefined objects: vérifie s'il y a des objets dans le modèle qui ne sont pas des objets BIM et seront donc exportés sans les propriétés BIM complètes
  • Solids: vérifie que tous les objets du modèle ont une géométrie solide valide
  • Explicit quantities: vérifie que tous les objets avec des propriétés de longueur, largeur ou hauteur sont marqués pour l'exportation explicite de ces quantités
  • Common Properties sets: vérifie que tous les objets BIM de types communs (mur, porte, etc ...) ont le jeu de propriétés "common" correspondant appliqué (Pset_WallCommon, Pset_DoorCommon, etc.)
  • Property sets integrity: vérifie que tous les Psets courants (Pset_WallCommon, Pset_DoorCommon, etc.) trouvés dans le modèle incluent toutes et uniquement les propriétés définies par les normes IFC
  • Materials: vérifie que tous les objets BIM ont un matériau
  • Standards: vérifie que tous les objets BIM ont un code standard

Tests de compatibilité

  • Extrusions: vérifie que tous les objets BIM sont des extrusions linéaires
  • Standard cases: vérifie que tous les murs et éléments de structure sont des cas standard, tels que définis par le schéma IFC
  • Tiny lines: vérifie qu'aucun segment de ligne dans le modèle n'est inférieur à 1/32", la longueur minimale que Revit est capable de gérer...
  • IfcRectangleProfileDef: vérifie que l'option d'exporter des profils rectangulaires en tant que IfcRectangleProfileDef est désactivée, car Revit (oui, encore une fois) ne peut pas importer cette entité.

Tests personnalisés

L'outil de contrôle en amont vous permet également d'écrire des tests personnalisés, qui seront ajoutés après les outils intégrés dans la boîte de dialogue Contrôle en amont, et exécutés lorsque vous utilisez le bouton Run all tests. Ces tests sont écrits en Python. Ils se composent de fonctions simples dans un ou plusieurs fichiers Python. Vous pouvez effectuer toutes les opérations que vous souhaitez à l'intérieur de ces fonctions, elles doivent simplement réussir ou échouer, et en cas d'échec, afficher un message informant l'utilisateur de ce qui a échoué.

Vous pouvez écrire plusieurs tests dans un seul fichier Python ou diviser en plusieurs fichiers, selon vos préférences. Ces fichiers doivent être placés dans $USERAPPDATA/BIM/Preflight et peuvent recevoir n'importe quel nom (assurez-vous d'utiliser des noms très uniques pour ne pas entrer en conflit avec un module Python intégré. Le dossier $USERAPPDATA dépend de votre plate-forme/système d'exploitation (généralement $HOME/.FreeCAD sous linux/mac, /users/YOUR USER/Application Data/roaming/FreeCAD sous windows) et peut également être trouvé en tapant ceci dans la console Python de FreeCAD:

FreeCAD.getUserAppDataDir()

À l'intérieur de chaque fichier Python, les tests sont des fonctions simples qui ne prennent aucun argument et renvoient soit True si le test a réussi, soit une chaîne de texte qui sera montrée à l'utilisateur si le test a échoué.

Un fichier de test typique serait comme ceci, qui devrait être nommé quelque chose comme "myCustomTest.py" et placé dans $USERAPPDATA/BIM/Preflight:

import FreeCAD

# The name of your test. You can give the functions any name
# you want, the important is the description text below

def myCustomTest():

   # This describes what your test does. For example,
   # here, it checks that there is at least one object in the document.
   # This text will appear next to the button in the Preflight tool

   """Checks that the document contains at least one object"""

   doc = FreeCAD.ActiveDocument
   objects = doc.Objects
   if len(objects) >= 1:
       result = True
   else:
       result = "This document contains no object"

   # The function must return either True or a string of
   # text if the test failed. The string or text will be displayed
   # to the user when they press the "Failed" button.

   return result