def tests_element_set_get_parameter_element_id(self): active_view = uidoc.ActiveView wrapped_view = rpw.Element(active_view) with rpw.Transaction('Create and Set Level'): try: new_level = DB.Level.Create(doc, 10) except: new_level = doc.Create.NewLevel(10) self.wrapped_wall.parameters['Top Constraint'].value = new_level.Id self.assertEqual( self.wrapped_wall.parameters['Top Constraint'].value.IntegerValue, new_level.Id.IntegerValue)
def setUp(self): collector = rpw.Collector() self.wall = collector.filter(of_class='Wall').first self.wrapped_wall = rpw.Element(self.wall) with rpw.Transaction('Set Comment'): self.wrapped_wall.parameters['Comments'].value = 'Tests' self.wrapped_wall.parameters['Unconnected Height'].value = 12.0 # BIP Ids self.param_id_height = rpw.BipEnum.get_id('WALL_USER_HEIGHT_PARAM') self.param_id_location = rpw.BipEnum.get_id('WALL_KEY_REF_PARAM') self.param_id_comments = rpw.BipEnum.get_id( 'ALL_MODEL_INSTANCE_COMMENTS') self.param_id_level_name = rpw.BipEnum.get_id('DATUM_TEXT')
def move_to_match_vp_placment(viewport, saved_pt): """ Moved viewport so base point matches the pt saved """ vp = ViewPortWrapper(viewport) current_origin = vp.project_origin_in_sheetspace delta = saved_pt - current_origin if viewport.Pinned: with rpw.Transaction('Unpin Viewport'): viewport.Pinned = False with rpw.Transaction('Paste Viewport Placement'): viewport.Location.Move(delta) viewport.Pinned = True viewport = rpw.Element(viewport) try: viewport.parameters.builtins['VIEWER_CROP_REGION_VISIBLE'] = 0 viewport.parameters.builtins['VIEWER_ANNOTATION_CROP_ACTIVE'] = 0 viewport.parameters.builtins['VIEWER_CROP_REGION'] = 1 except Exception as errmsg: print('Could not set some parameters: {}'.format(errmsg))
except Exception as errmsg: counter += 1 if counter > 100: raise Exception('Exceeded Maximum Loop') else: break else: break return viewplan NewView = namedtuple('NewView', ['name', 'bbox', 'level_id']) new_views = [] for room in selected_rooms: room = rpw.Element(room) room_level_id = room.Level.Id room_name = room.parameters['Name'].value room_number = room.parameters['Number'].value new_room_name = '{} {}'.format(room_name, room_number) room_bbox = room.get_BoundingBox(doc.ActiveView) new_bbox = offset_bbox(room_bbox, crop_offset) view_name = '{} - {}'.format(room.Level.Name, new_room_name) new_view = NewView(name=view_name, bbox=new_bbox, level_id=room_level_id) new_views.append(new_view) for new_view in new_views: view = create_plan(new_view=new_view, view_type_id=view_type_id)
str('This Tool only works for Revit 2015')) sys.exit() if not selected_views: UI.TaskDialog.Show( 'Set Underlay', 'Must have a view actively selected in Project Browser.') __window__.Close() sys.exit() levels = rpw.Collector(of_category='OST_Levels', is_not_type=True).elements levels_dict = {level.Name: level.Id for level in levels} levels_dict['None'] = DB.ElementId.InvalidElementId form = rpw.forms.SelectFromList('Select Underlay', levels_dict.keys(), description="Select a Level") form.show() if not form.selected: __window__.Close() sys.exit() selected_underlay_id = levels_dict[form.selected] with rpw.Transaction('Batch Set Underlay to None'): for view in selected_views: rpw_view = rpw.Element(view) rpw_view.parameters.builtins['VIEW_UNDERLAY_ID'] = selected_underlay_id __window__.Close()
def setUp(self): self.wall = rpw.Collector(of_class='Wall').first self.wrapped_wall = rpw.Element(self.wall)
This file is shared on www.revitapidocs.com For more information visit http://github.com/gtalarico/revitapidocs License: http://github.com/gtalarico/revitapidocs/blob/master/LICENSE.md """ import rpw from rpw import doc selection = rpw.Selection() phases = [p for p in doc.Phases] phase_options = {p.Name: p for p in phases} form = rpw.forms.SelectFromList('Set Phase', phase_options.keys(), description='Select a Phase') form_ok = form.show() if not form_ok: __window__.Close() import sys; sys.exit() phase = phase_options[form.selected] with rpw.TransactionGroup('Set Phases'): for element in selection: element = rpw.Element(element) with rpw.Transaction('Set Element Phase'): try: element.parameters.builtins['PHASE_CREATED'].value = phase.Id except rpw.exceptions.RPW_Exception: pass
'pyRevitPlus', 'Could not find saved viewport placement.\nCopy a Viewport Placement first.' ) else: saved_pt = DB.XYZ(pt.X, pt.Y, pt.Z) vp = ViewPortWrapper(viewport) current_origin = vp.project_origin_in_sheetspace delta = saved_pt - current_origin if viewport.Pinned: with rpw.Transaction('Unpin Viewport'): viewport.Pinned = False with rpw.Transaction('Paste Viewport Placement'): viewport.Location.Move(delta) viewport.Pinned = True viewport = rpw.Element(viewport) try: # TODO: Make these optional viewport.parameters.builtins[ 'VIEWER_CROP_REGION_VISIBLE'] = 0 viewport.parameters.builtins[ 'VIEWER_ANNOTATION_CROP_ACTIVE'] = 0 viewport.parameters.builtins['VIEWER_CROP_REGION'] = 1 except Exception as errmsg: print('Could not set some parameters: {}'.format(errmsg)) else: UI.TaskDialog.Show('pyRevitPlus', 'Select 1 Viewport. No more, no less!') __window__.Close()