Optimiser DWG pour Revit: Convertir Polylignes en Splines/Arcs dans AutoCAD

Comment optimiser des fichiers DWG complexes (contenant de nombreuses polylignes) pour une meilleure importation dans Revit, en réduisant le nombre d’objets via la conversion de polylignes en splines ou arcs, afin d’éviter les problèmes de performance et d’importation ?

L’importation de fichiers DWG très détaillés dans Revit, surtout pour des niveaux de détail (LOD) élevés comme le LOD 50, peut effectivement entraîner des problèmes de performance et des échecs d’importation si le nombre d’objets est trop important (souvent au-delà de 5000 éléments). L’objectif est de simplifier la géométrie sans perdre l’information essentielle pour la visualisation ou l’analyse. Voici une approche experte combinant des outils natifs d’AutoCAD et des pistes pour l’automatisation LISP.

1. Simplification des Polylignes en Splines (Méthode Native AutoCAD)

Cette méthode permet de transformer des polylignes composées de nombreux segments courts en une entité spline plus fluide et moins gourmande en ressources, réduisant ainsi le nombre de sommets et la complexité géométrique.

  1. Préparation (Optionnel - Joindre les Polylignes) : Si vous avez plusieurs polylignes adjacentes qui devraient former une seule entité logique (par exemple, des segments de ligne qui représentent une seule courbe), il est préférable de les joindre avant la conversion.
    • Lancez la commande PEDIT (ou MODIFPOLY).
    • Choisissez l’option M (Multiple) et sélectionnez toutes les polylignes concernées.
    • Confirmez la conversion en polylignes si nécessaire (O pour Oui).
    • Choisissez l’option J (Joindre) et spécifiez une tolérance si vos polylignes ne sont pas parfaitement connectées. Cela réduira le nombre d’objets en fusionnant des polylignes.
  2. Conversion en Spline : Une fois vos polylignes préparées (ou si elles sont déjà des entités uniques),
    • Lancez à nouveau la commande PEDIT.
    • Sélectionnez la polyligne (ou les polylignes si vous utilisez l’option Multiple).
    • Choisissez l’option S (Spline). AutoCAD transformera la polyligne en une polyligne spline, qui est une courbe de Bézier de degré 3, plus lisse et avec moins de points de contrôle que la polyligne d’origine. Cela réduit la complexité de l’entité.

2. Optimisation Générale du Fichier DWG

Avant l’importation dans Revit, il est crucial de nettoyer et d’alléger le fichier DWG.

  1. Purger les Éléments Inutilisés (EPURER / PURGE) : Supprimez tous les blocs, calques, styles de texte, types de ligne, etc., qui ne sont pas utilisés dans le dessin. Cela réduit considérablement la taille du fichier et le nombre d’éléments à traiter par Revit.
  2. Supprimer les Objets Superposés (SURKILL / OVERKILL) : Cette commande, disponible dans les outils Express d’AutoCAD, identifie et supprime les objets dupliqués ou superposés. C’est une situation très courante après une conversion de PDF en DWG. L’utilisation de OVERKILL réduit le nombre d’entités sans altérer la géométrie visible.
  3. Simplification Manuelle/Sélective : Bien que fastidieuse, la suppression des détails non essentiels ou des petits segments (par exemple, des polylignes de très faible longueur) est une méthode efficace pour les zones où la précision extrême n’est pas requise. Utilisez des outils de sélection rapide (_QSELECT) pour isoler des objets par type, calque ou propriété, puis supprimez-les.

3. Pistes d’Automatisation avec LISP et Visual LISP

Votre demande initiale d’un LISP est très pertinente pour automatiser ces tâches, surtout si vous traitez de nombreux fichiers ou des géométries très complexes. Un script LISP peut considérablement accélérer le processus de nettoyage et de conversion.

Un script LISP pourrait être développé pour :

  • Conversion Automatisée de Polylignes en Splines : Itérer sur toutes les polylignes d’un dessin (ou d’une sélection spécifique, par exemple, toutes les polylignes d’un certain calque) et appliquer la commande PEDIT avec l’option SPLINE à chacune. Cela éviterait la manipulation manuelle répétitive.
  • Filtrage et Suppression de Petits Segments : Identifier et supprimer automatiquement les polylignes dont la longueur totale est inférieure à un seuil défini. Cela répondrait directement à votre besoin de supprimer les segments trop petits sans intervention manuelle.
  • Nettoyage Combiné : Intégrer les commandes PURGE et OVERKILL dans un script LISP pour un nettoyage complet du dessin en une seule exécution.

Exemple de pseudo-code LISP pour la conversion de polylignes légères en splines :

(defun c:ConvertPolyToSpline ( / ss i ent )
  (princ "\nSélectionnez les polylignes à convertir en splines ou appuyez sur Entrée pour toutes les polylignes légères.")
  (if (setq ss (ssget '((0 . "LWPOLYLINE")))) ; Sélectionne toutes les polylignes légères par défaut
    (progn
      (setq i 0)
      (repeat (sslength ss)
        (setq ent (ssname ss i))
        (command "_PEDIT" ent "_S" "") ; Applique l'option Spline à la polyligne
        (setq i (1+ i))
      )
      (princ (strcat "\n" (itoa (sslength ss)) " polylignes converties en splines."))
    )
    (princ "\nAucune polyligne sélectionnée ou trouvée.")
  )
  (princ)
)

Ce LISP simple sélectionne toutes les polylignes légères (LWPOLYLINE) et applique la commande PEDIT avec l’option Spline à chacune. Pour des besoins plus complexes (filtrage par calque, longueur, etc.), le LISP devrait être plus élaboré.

4. Recommandations Spécifiques pour l’Importation dans Revit

  • Lier plutôt qu’Importer : Pour les géométries très complexes ou les fichiers DWG de grande taille, il est souvent préférable de lier le DWG dans Revit plutôt que de l’importer directement. Cela maintient le lien avec le fichier source et permet une meilleure gestion des performances dans le projet Revit.
  • Contrôle des Calques : Avant de lier ou d’importer, assurez-vous que seuls les calques nécessaires sont visibles dans AutoCAD. Revit importera ou liera uniquement les éléments visibles, ce qui peut réduire davantage la charge.

En combinant ces méthodes, vous devriez pouvoir réduire significativement la complexité de vos fichiers DWG pour une intégration plus fluide dans Revit, même pour des exigences de LOD élevées.