Macro Revit pour créer un mur

Un petit exemple commenté de création d'un mur via l'API Revit :

public void CreateWall()
{
  // On récupére le document actif.
  Document document = ActiveUIDocument.Document;

  // On crée une transaction. C'est nécessaire quand on doit modifier le document.
  using(var tr = new Transaction(document, "Création mur")) {

    // On démarre la transaction.
    tr.Start();

    // Pour créer notre mur, on a besoin de créer au préalable la courbe support. On 
    // doit donc créer une ligne droite. Pour créer cette ligne, on doit créer d'abord 
    // son point de départ et son point d'arrivée. On crée donc 2 objets points start et
    // end.
    // Comme on veut créer un mur de 4 mètres de long et que Revit travaille avec des 
    // pieds, on utilise la classe UnitUtils pour effectuer une conversion d'unité.
    var start = new XYZ(0,0,0);
    var end = new XYZ(UnitUtils.ConvertToInternalUnits(4, DisplayUnitType.DUT_METERS), 
      0, 0);

    // On crée la ligne.        
    using (Line line = Line.CreateBound(start, end)) {

      // On crée notre mur. On doit préciser le niveau. 
      // On prend le niveau associé à la vue active.
      Wall.Create(document, line, ActiveUIDocument.ActiveView.GenLevel.Id, false);
    }

    // On valide la transaction. Si on avait rencontré une erreur, on aurait pu annuler 
    // la transaction pour annuler toutes les opérations qui s'étaient déroulée depuis 
    // le démarrage de la transaction.
    // Si on ne valide pas la transaction, notre mur ne sera pas créé.
    tr.Commit();
  }
}

Le code est valable pour Revit 2014 et doit être exécuté sous la forme d'une macro.

Etiquettes:

Add new comment