def copy(self): views = revit.get_selection().only_views() if views: view = views[0] view_filters = revit.query.get_view_filters(view) if not view_filters: raise PyRevitException('Active view has no fitlers applied') selected_filters = forms.SelectFromList.show( view_filters, name_attr='Name', title='Select filters to copy', button_name='Select filters', multiselect=True ) if not selected_filters: raise PyRevitException('No filters selected. Cancelled.') script.store_data( slot_name=self.__class__.__name__, data=FilterOverridesData( source_viewid=view.Id, filter_ids=[f.Id for f in view_filters] ) )
def copy(self): script.store_data( slot_name=self.__class__.__name__, data=VisibilityGraphicsData( source_viewid=revit.active_view.Id, ) )
def copy(self): section_box = revit.active_view.GetSectionBox() view_orientation = revit.active_view.GetOrientation() script.store_data(slot_name=self.__class__.__name__, data=SectionBox3DStateData( section_box=section_box, view_orientation=view_orientation), this_project=False)
def copy(self): active_view = revit.active_view active_ui_view = revit.uidoc.GetOpenUIViews()[0] dir_orient = None if isinstance(revit.active_view, DB.View3D): dir_orient = revit.active_view.GetOrientation() elif isinstance(revit.active_view, DB.ViewSection): dir_orient = revit.active_view.ViewDirection script.store_data(slot_name=self.__class__.__name__, data=ViewZoomPanStateData( view_type=active_view.ViewType, corner_pts=active_ui_view.GetZoomCorners(), dir_orient=dir_orient), this_project=False)
def copy(self): viewports = revit.get_selection().include(DB.Viewport) if len(viewports) != 1: raise Exception('Exactly one viewport must be selected') viewport = viewports[0] view = revit.doc.GetElement(viewport.ViewId) title_block_pt = \ ViewportPlacementAction.get_title_block_placement(viewport) if view.ViewType in [DB.ViewType.DraftingView, DB.ViewType.Legend]: alignment = ALIGNMENT_CROPBOX else: alignment = forms.CommandSwitchWindow.show( ALIGNMENT_OPTIONS_COPY, message='Select Alignment Option') if not alignment: return with revit.DryTransaction('Activate & Read Cropbox, Copy Center'): if alignment == ALIGNMENT_BASEPOINT: revit.update.set_crop_region( view, ViewportPlacementAction.zero_cropbox(view) ) # use cropbox as alignment if it active if alignment == ALIGNMENT_BASEPOINT or view.CropBoxActive: ViewportPlacementAction.activate_cropbox(view) ViewportPlacementAction.hide_all_elements(view) revit.doc.Regenerate() if alignment == ALIGNMENT_CROPBOX: outline = view.Outline offset_uv = (outline.Max - outline.Min) / 2 center = viewport.GetBoxCenter() - title_block_pt script.store_data( slot_name=self.__class__.__name__, data=ViewportPlacementData( alignment=alignment, center=center, offset_uv=offset_uv if alignment == ALIGNMENT_CROPBOX else None ) )
def copy(self): view = CropRegionAction.get_first_cropable_view() crop_bbox = cropregion_curve_loop = None if isinstance(view, DB.View3D): crop_bbox = view.CropBox else: cropregion_curve_loops = revit.query.get_crop_region(view) if cropregion_curve_loops: cropregion_curve_loop = cropregion_curve_loops[0] if crop_bbox or cropregion_curve_loop: script.store_data(slot_name=self.__class__.__name__, data=CropRegionData( cropregion_curveloop=cropregion_curve_loop, crop_bbox=crop_bbox, is_active=view.CropBoxActive), this_project=False) else: raise PyRevitException('Cannot read crop region of selected view')