/// <summary> /// The implementation of the FindSouthFacingWindows command. /// </summary> /// <param name="useProjectLocationNorth">true to use the active project location's north/south direction. /// false to use the default coordinate system's north/south (Y-axis).</param> protected void Execute(bool useProjectLocationNorth) { UIDocument uiDoc = new UIDocument(Document); Autodesk.Revit.UI.Selection.SelElementSet selElements = uiDoc.Selection.Elements; IEnumerable <FamilyInstance> windows = CollectWindows(); foreach (FamilyInstance window in windows) { XYZ exteriorDirection = GetWindowDirection(window); if (useProjectLocationNorth) { exteriorDirection = TransformByProjectLocation(exteriorDirection); } bool isSouthFacing = IsSouthFacing(exteriorDirection); if (isSouthFacing) { selElements.Add(window); } } // Select all windows which had the proper direction. uiDoc.Selection.Elements = selElements; }
/// <summary> /// The implementation of the FindSouthFacingWalls command. /// </summary> /// <param name="useProjectLocationNorth">true to use the active project location's north/south direction. /// false to use the default coordinate system's north/south (Y-axis).</param> protected void Execute(bool useProjectLocationNorth) { UIDocument uiDoc = new UIDocument(Document); Autodesk.Revit.UI.Selection.SelElementSet selElements = uiDoc.Selection.Elements; IEnumerable <Wall> walls = CollectExteriorWalls(); foreach (Wall wall in walls) { XYZ exteriorDirection = GetExteriorWallDirection(wall); if (useProjectLocationNorth) { exteriorDirection = TransformByProjectLocation(exteriorDirection); } bool isSouthFacing = IsSouthFacing(exteriorDirection); if (isSouthFacing) { selElements.Insert(wall); } } // Select all walls which had the proper direction. uiDoc.Selection.Elements = selElements; }
public Result Execute( ExternalCommandData commandData, ref string message, ElementSet elements) { UIApplication uiapp = commandData.Application; UIDocument uidoc = uiapp.ActiveUIDocument; Application app = uiapp.Application; Document doc = uidoc.Document; if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text)) { string content = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString(); string[] contentSplit = content.Split('\n'); ICollection <ElementId> eids = new List <ElementId>(); int count = 0; StringBuilder sb = new StringBuilder(); for (int i = 0; i < contentSplit.Length - 1; i++) { try { eids.Add(new ElementId(Int32.Parse(contentSplit[i]))); } catch { sb.AppendLine($"ElementId {contentSplit[i]} has thrown an error."); } } Autodesk.Revit.UI.Selection.SelElementSet selElements = uidoc.Selection.Elements; foreach (ElementId eid in eids) { selElements.Insert(doc.GetElement(eid)); count += 1; } TaskDialog.Show("Result", $"{count} element(s) have been selected. Errors:{sb.ToString()}"); uidoc.Selection.Elements = selElements; } else { TaskDialog.Show("Error", "THe Clipboard does not contain any valid ElementId"); } return(Result.Succeeded); }
private void okButton_Click(object sender, RoutedEventArgs e) { // Change the Revit selection based on the selected run elements Autodesk.Revit.UI.Selection.SelElementSet elemSet = Autodesk.Revit.UI.Selection.SelElementSet.Create(); foreach (int id in selectedRun.ElementIds) { ElementId eid = new ElementId(id); Element elem = uiDoc.Document.GetElement(eid); elemSet.Add(elem); } uiDoc.Selection.Elements = elemSet; Close(); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { try { Autodesk.Revit.UI.Selection.SelElementSet elemSet = commandData.Application.ActiveUIDocument.Selection.Elements; int itemCount = 0; if (elemSet.Size > 0) { Schema schema = Schema.Lookup(instanceSchemaGUID); if (schema == null) { TaskDialog.Show("Error", "Could not find any Lyrebird Data"); } else { using (Transaction trans = new Transaction(commandData.Application.ActiveUIDocument.Document, "Lyrebird - Remove Data")) { trans.Start(); foreach (Element e in elemSet) { try { e.DeleteEntity(schema); itemCount++; } catch (Exception ex) { Debug.WriteLine("Error", ex.Message); } } trans.Commit(); TaskDialog.Show("Message", "Successfully removed Lyrebird data from " + itemCount.ToString() + " elements."); } } } else { TaskDialog.Show("Error", "No elements selected."); } return(Result.Succeeded); } catch (Exception ex) { TaskDialog.Show("Error", ex.Message); return(Result.Failed); } }