viernes, 27 de noviembre de 2015

MACRO MANAGER | Muros por medio de Líneas de Modelo

Esta macro es similar a la anterior, excepto que esta vez crea Muros. Me ha basado en el código de esta página, únicamente lo he "traducido" a Python.
       
    def WallsByModelLines(self):
        uidoc = self.ActiveUIDocument
        doc = uidoc.Document

        collector = FilteredElementCollector(doc)
        lines = collector.OfCategory(BuiltInCategory.OST_Lines).ToElements()

        level = doc.ActiveView.GenLevel.Id

        t = Transaction(doc, "Crea muros por medio de líneas de modelo.")
        t.Start()

        n = 0
        for line in lines:
            if line.Name == 'Model Lines':
                curve = line     
                wall = Wall.Create(doc,curve.GeometryCurve,level,False)
                n += 1
      
        t.Commit()

        prompt = 'Muros creados: ' + n.ToString()
        TaskDialog.Show("Walls By Model Lines", prompt)



Saludos.