Example #1
0
        /// <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;
        }
Example #2
0
        /// <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;
        }
Example #3
0
        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);
        }
Example #4
0
        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();
        }
Example #5
0
        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);
            }
        }