You're right, it's not being used correctly. The Transaction needs to take place inside the Idling event. The button click handler and Idling event handler should look something like this in Revit 2014: void revitApp_Idling(object sender, Autodesk.Revit.UI.Events.IdlingEventArgs e) { UIApplication uiapp = sender as UIApplication; UIDocument uidoc = uiapp.ActiveUIDocument; ElementSet elems = uidoc.Selection.Elements; if (elems != null) { label1.Text = elems.Size.ToString() + " items selected."; } else { label1.Text = "No elements selected."; } if (shouldRun) { using (Transaction trans = new Transaction(uidoc.Document, "Hide elements")) { trans.Start(); uidoc.Document.ActiveView.HideElements((from Element el in elems select el.Id).ToList()); uidoc.RefreshActiveView(); trans.Commit(); } shouldRun = false; } } private void button1_Click(object sender, EventArgs e) { shouldRun = true; }
本文详细介绍了在Revit2014中如何正确使用Transaction进行元素的隐藏操作,强调了Transaction应置于Idling事件中执行的重要性。通过具体的代码示例,展示了按钮点击与Idling事件处理中Transaction的正确用法。

被折叠的 条评论
为什么被折叠?



