コード例 #1
0
 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)
コード例 #2
0
    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')
コード例 #3
0
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))
コード例 #4
0
            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)
コード例 #5
0
                       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()
コード例 #6
0
 def setUp(self):
     self.wall = rpw.Collector(of_class='Wall').first
     self.wrapped_wall = rpw.Element(self.wall)
コード例 #7
0
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
コード例 #8
0
ファイル: script.py プロジェクト: kidasse/pyrevitplus
                '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()