public class CreateFirst : IExternalEventHandler
{
public double WallHeight { get; set; }
public void Execute(UIApplication app)
{
Document doc = app.ActiveUIDocument.Document;
double height = WallHeight / 304.8;
FilteredElementCollector collector = new FilteredElementCollector(doc);
Element elem = collector.OfCategory(BuiltInCategory.OST_Walls).OfClass(typeof(WallType)).ToElements().FirstOrDefault(x => x.Name == "外墙-200mm");
WallType wallType = elem as WallType;
Level level = new FilteredElementCollector(doc).OfClass(typeof(Level)).FirstOrDefault(l => l.Name == "标高 1") as Level;
Line line = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(10, 10, 0));
double offset = 0;
using (Transaction trans = new Transaction(doc))
{
trans.Start("Creat wall");
Wall wall = Wall.Create(doc, line, wallType.Id, level.Id, height, offset, false, false);
trans.Commit();
}
}
public string GetName()
{
return "";
}
}
public partial class MainWindow : Window
{
private CreateFirst createFirst;
private ExternalEvent createFirstEvent;
public MainWindow()
{
InitializeComponent();
createFirst = new CreateFirst();
createFirstEvent = ExternalEvent.Create(createFirst);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
createFirst.WallHeight = Convert.ToDouble(textBox.Text);
createFirstEvent.Raise();
}
}
Revit二次开发——通过外部事件的属性传递参数
最新推荐文章于 2022-04-07 18:48:01 发布