J’utilise Revit 2022 et je travaille avec des assemblages contenant des familles imbriquées. Pour que les sous-éléments soient pris en compte dans mes vues d’assemblage et nomenclatures, je dois les ajouter manuellement à chaque fois. Comment puis-je automatiser cette tâche pour l’ensemble du projet avec Dynamo ou Python ?
Pour automatiser l’intégration des familles imbriquées dans les assemblages Revit, l’approche consiste à utiliser Dynamo pour identifier et ajouter les éléments pertinents, en s’appuyant sur des critères géométriques et de typologie.
Voici une méthode générale pour y parvenir avec Dynamo, basée sur les principes partagés par christian.stan :
- Définir le périmètre de l’assemblage : Commencez par identifier les assemblages existants ou les éléments principaux qui formeront un assemblage. Pour chaque assemblage, déterminez un volume englobant (par exemple, une
BoundingBox) qui définira la zone d’intérêt. - Filtrer les éléments à inclure : À l’intérieur de ce volume englobant, filtrez tous les éléments (familles imbriquées, composants, etc.) que vous souhaitez ajouter à l’assemblage. Utilisez des critères tels que le nom de type des familles pour cibler précisément les vis, rondelles, écrous, etc.
- Intercepter les éléments : Une fois les éléments filtrés, utilisez des nœuds Dynamo pour « intercepter » ceux qui se trouvent géométriquement à l’intérieur du volume englobant de l’assemblage principal.
- Créer ou modifier l’assemblage : Utilisez un package Dynamo tel que ClockWork (ou d’autres nœuds d’API Revit exposés dans Dynamo) pour créer l’assemblage si ce n’est pas déjà fait, ou pour ajouter les éléments interceptés à un assemblage existant. L’API Revit offre des méthodes spécifiques pour la gestion des assemblages, comme
AssemblyInstance.AddMembers().
Alternative avancée (API Revit) :
Pour une solution plus robuste et personnalisée, notamment si Dynamo ne suffit pas ou pour des besoins spécifiques, l’API Revit offre un contrôle direct. La documentation officielle de l’API Revit, comme la méthode AssemblyInstance.AddMembers() (mentionnée par Cyril POUPIN), est une ressource précieuse pour développer des scripts Python ou des plugins .NET qui interagissent directement avec les assemblages et leurs membres.
Cette approche permet de traiter tous les assemblages du projet en une seule exécution, garantissant que tous les sous-éléments sont correctement inclus pour les vues et nomenclatures.