2

我开始学习 pyRevit,这就是问题所在。我想创建一个 WPF,我可以在其中输入值,然后 Revit 可以自动构建一个简单的矩形建筑。我已经创建了一个 WPF,但我陷入了需要将长度的值(接口)与 python 代码连接起来的部分。在此处输入图像描述

import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
from pyrevit.forms import WPFWindow
doc = __revit__.ActiveUIDocument.Document
uidoc = __revit__.ActiveUIDocument


class ModalForm(WPFWindow):
    def __init__(self, xaml_file_name):
        WPFWindow.__init__(self, xaml_file_name)
        self.ShowDialog()

    def start_button(self, sender, e):
        levels = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Levels).WhereElementIsNotElementType().ToElements()
    walls = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).WhereElementIsElementType().ToElements()
        for level in levels:
            elevation = level.get_Parameter(BuiltInParameter.LEVEL_ELEV).AsDouble()
            if elevation == 1000/304.8:
                level_0 = level
        for wall in walls:
            name = wall.get_Parameter(BuiltInParameter.SYMBOL_NAME_PARAM).AsString()
            if name == 'C25/30 - 250mm':
                wall_type = wall
        p_1 = XYZ(0,0,level_0.Elevation)
        p_2 = XYZ(50,0,level_0.Elevation)
        line_1 = Line.CreateBound(p_1, p_2)
    

        t = Transaction(doc, 'column')
        t.Start()

        wall_1 = Wall.Create(doc, line, wall_type.Id, level_0.Id, 3000/304.8, 0, False, True)
        t.Commit()
        self.Close()        

    def cancel_button(self, sender, e):
        self.Close()

form = ModalForm('interface.xaml')
4