我开始学习 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')