簡體   English   中英

如何通過 Revit python 中的 WPF 創建方形牆

[英]How to create square of walls via WPF in Revit python

我開始學習 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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM