def main(self): # Create a selection sel = self.uidoc.Selection # Prompt the user to pick the required external link try: ref = sel.PickObject(ObjectType.Element, "Please pick a linked model instance") # Get AR RVT link rvt_link = self.doc.GetElement(ref.ElementId) if not self.rvt_link_check(rvt_link): WinForms.MessageBox.Show("The operation was cancelled!", "Error!", WinForms.MessageBoxButtons.OK, WinForms.MessageBoxIcon.Information) return self.transform = rvt_link.GetTotalTransform() linkedDoc = rvt_link.GetLinkDocument() # Create a room collector instance room_collector = FilteredElementCollector(linkedDoc) # Create a space collector instance self._space_collector = FilteredElementCollector( self.doc).WhereElementIsNotElementType().OfCategory( BuiltInCategory.OST_MEPSpaces) # Collect levels from the current document levels = FilteredElementCollector( self.doc).WhereElementIsNotElementType().OfCategory( BuiltInCategory.OST_Levels) # For each level in the current model define its elevation and create level elevation:Level dictionary self.lvls_dict = {level.Elevation: level for level in levels} # Collect rooms from RVT link if room_collector and room_collector.GetElementCount() != 0: self.rooms_list = room_collector.WhereElementIsNotElementType( ).OfCategory(BuiltInCategory.OST_Rooms) self.counter = 0 self.startProgress.emit(room_collector.GetElementCount() + self.spaces_count + \ (2*(room_collector.GetElementCount()*len(self._excel_parameters)))) self.__main() self.endProgress.emit() except Exception as e: logger.error(e, exc_info=True) WinForms.MessageBox.Show("The operation was cancelled!", "Error!", WinForms.MessageBoxButtons.OK, WinForms.MessageBoxIcon.Information) return
License: http://github.com/gtalarico/revitapidocs/blob/master/LICENSE.md """ import clr clr.AddReference('RevitAPI') clr.AddReference('RevitAPIUI') clr.AddReference("System") from Autodesk.Revit.UI import TaskDialog from Autodesk.Revit.DB import FilteredElementCollector from Autodesk.Revit.DB import BuiltInCategory, ElementId from System.Collections.Generic import List collector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Doors) doors = collector.WhereElementIsNotElementType().ToElements() mir_doors = [] for door in doors: try: if door.Mirrored: mir_doors.append(door) except AttributeError: pass # for Symbols that don't have Mirrored attribute. TaskDialog.Show("Mirrored Doors", "Mirrored: {} of {} Doors".format(len(mir_doors), len(doors))) selection = uidoc.Selection collection = List[ElementId]([door.Id for door in mir_doors])