forms
Reusable WPF forms for pyRevit.
Examples:
Attributes
mlogger = get_logger(__name__)
module-attribute
DEFAULT_CMDSWITCHWND_WIDTH = 600
module-attribute
DEFAULT_SEARCHWND_WIDTH = 600
module-attribute
DEFAULT_SEARCHWND_HEIGHT = 100
module-attribute
DEFAULT_INPUTWINDOW_WIDTH = 500
module-attribute
DEFAULT_INPUTWINDOW_HEIGHT = 600
module-attribute
DEFAULT_RECOGNIZE_ACCESS_KEY = False
module-attribute
WPF_HIDDEN = framework.Windows.Visibility.Hidden
module-attribute
WPF_COLLAPSED = framework.Windows.Visibility.Collapsed
module-attribute
WPF_VISIBLE = framework.Windows.Visibility.Visible
module-attribute
XAML_FILES_DIR = op.dirname(__file__)
module-attribute
ParamDef = namedtuple('ParamDef', ['name', 'istype', 'definition', 'isreadonly'])
module-attribute
Parameter definition tuple.
Attributes:
Name | Type | Description |
---|---|---|
name |
str
|
parameter name |
istype |
bool
|
true if type parameter, otherwise false |
definition |
Definition
|
parameter definition object |
isreadonly |
bool
|
true if the parameter value can't be edited |
Classes
reactive(getter)
Bases: property
Decorator for WPF bound properties.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Functions
setter(setter)
Property setter.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Reactive
Bases: INotifyPropertyChanged
WPF property updator base mixin.
Functions
add_PropertyChanged(value)
remove_PropertyChanged(value)
OnPropertyChanged(prop_name)
Called when a property is changed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prop_name |
str
|
property name |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
WindowToggler(window)
WPFWindow(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Bases: Window
WPF Window base class for all pyRevit forms.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml source filepath or xaml content |
required |
literal_string |
bool
|
xaml_source contains xaml content, not filepath |
False
|
handle_esc |
bool
|
handle Escape button and close the window |
True
|
set_owner |
bool
|
set the owner of window to host app window |
True
|
Examples:
from pyrevit import forms
layout = '<Window ' \
'xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ' \
'xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" ' \
'ShowInTaskbar="False" ResizeMode="NoResize" ' \
'WindowStartupLocation="CenterScreen" ' \
'HorizontalContentAlignment="Center">' \
'</Window>'
w = forms.WPFWindow(layout, literal_string=True)
w.show()
Initialize WPF window and resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
handle_input_key(sender, args)
set_icon(icon_path)
setup_icon()
hide()
show(modal=False)
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
WPFPanel()
Bases: Page
WPF panel base class for all pyRevit dockable panels.
panel_id (str) must be set on the type to dockable panel uuid panel_source (str): xaml source filepath
Examples:
from pyrevit import forms
class MyPanel(forms.WPFPanel):
panel_id = "181e05a4-28f6-4311-8a9f-d2aa528c8755"
panel_source = "MyPanel.xaml"
forms.register_dockable_panel(MyPanel)
# then from the button that needs to open the panel
forms.open_dockable_panel("181e05a4-28f6-4311-8a9f-d2aa528c8755")
Initialize WPF panel and resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
panel_id = None
class-attribute
instance-attribute
panel_source = None
class-attribute
instance-attribute
thread_id = framework.get_current_thread_id()
instance-attribute
Functions
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
TemplateUserInputWindow(context, title, width, height, **kwargs)
Bases: WPFWindow
Base class for pyRevit user input standard forms.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
context |
any
|
window context element(s) |
required |
title |
str
|
window title |
required |
width |
int
|
window width |
required |
height |
int
|
window height |
required |
**kwargs |
Any
|
other arguments to be passed to :func: |
{}
|
Initialize user input window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
xaml_source = 'BaseWindow.xaml'
class-attribute
instance-attribute
Title = title or 'pyRevit'
instance-attribute
Width = width
instance-attribute
Height = height
instance-attribute
response = None
instance-attribute
Owner = owner
instance-attribute
WindowStartupLocation = framework.Windows.WindowStartupLocation.CenterOwner
instance-attribute
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
handle_input_key(sender, args)
set_icon(icon_path)
setup_icon()
hide()
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
show(context, title='User Input', width=DEFAULT_INPUTWINDOW_WIDTH, height=DEFAULT_INPUTWINDOW_HEIGHT, **kwargs)
classmethod
Show user input window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
context |
any
|
window context element(s) |
required |
title |
str
|
window title |
'User Input'
|
width |
int
|
window width |
DEFAULT_INPUTWINDOW_WIDTH
|
height |
int
|
window height |
DEFAULT_INPUTWINDOW_HEIGHT
|
**kwargs |
any
|
other arguments to be passed to window |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
TemplateListItem(orig_item, checked=False, checkable=True, name_attr=None)
Bases: Reactive
Base class for checkbox option wrapping another object.
Initialize the checkbox option and wrap given obj.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
orig_item |
any
|
Object to wrap (must have name property or be convertable to string with str() |
required |
checked |
bool
|
Initial state. Defaults to False |
False
|
checkable |
bool
|
Use checkbox for items |
True
|
name_attr |
str
|
Get this attribute of wrapped object as name |
None
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
item = orig_item
instance-attribute
state = checked
instance-attribute
name
property
Name property.
checkable
property
writable
List Item CheckBox Visibility.
Functions
add_PropertyChanged(value)
remove_PropertyChanged(value)
OnPropertyChanged(prop_name)
Called when a property is changed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prop_name |
str
|
property name |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
unwrap()
SelectFromList(context, title, width, height, **kwargs)
Bases: TemplateUserInputWindow
Standard form to select from a list of items.
Any object can be passed in a list to the context
argument. This class
wraps the objects passed to context, in TemplateListItem
.
This class provides the necessary mechanism to make this form work both
for selecting items from a list, and from a list of checkboxes. See the
list of arguments below for additional options and features.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
context |
list[str] or dict[list[str]]
|
list of items to be selected from OR dict of list of items to be selected from. use dict when input items need to be grouped e.g. List of sheets grouped by sheet set. |
required |
title |
str
|
window title. see super class for defaults. |
required |
width |
int
|
window width. see super class for defaults. |
required |
height |
int
|
window height. see super class for defaults. |
required |
Other Parameters:
Name | Type | Description |
---|---|---|
button_name |
str
|
name of select button. defaults to 'Select' |
name_attr |
str
|
object attribute that should be read as item name. |
multiselect |
bool
|
allow multi-selection (uses check boxes). defaults to False |
info_panel |
bool
|
show information panel and fill with .description property of item |
return_all |
bool
|
return all items. This is handly when some input items have states and the script needs to check the state changes on all items. This options works in multiselect mode only. defaults to False |
filterfunc |
function
|
filter function to be applied to context items. |
resetfunc |
function
|
reset function to be called when user clicks on Reset button |
group_selector_title |
str
|
title for list group selector. defaults to 'List Group' |
default_group |
str
|
name of defautl group to be selected |
sort_groups |
str
|
Determines the sorting type applied to the list groups. This attribute can take one of the following values: 'sorted': This will sort the groups in standard alphabetical order 'natural': This will sort the groups in a manner that is more intuitive for human perception, especially when there are numbers involved. 'unsorted': The groups will maintain the original order in which they were provided, without any reordering. Defaults to 'sorted'. |
Examples:
from pyrevit import forms
items = ['item1', 'item2', 'item3']
forms.SelectFromList.show(items, button_name='Select Item')
['item1']
from pyrevit import forms
ops = [viewsheet1, viewsheet2, viewsheet3]
res = forms.SelectFromList.show(ops,
multiselect=False,
name_attr='Name',
button_name='Select Sheet')
from pyrevit import forms
ops = {'Sheet Set A': [viewsheet1, viewsheet2, viewsheet3],
'Sheet Set B': [viewsheet4, viewsheet5, viewsheet6]}
res = forms.SelectFromList.show(ops,
multiselect=True,
name_attr='Name',
group_selector_title='Sheet Sets',
button_name='Select Sheets',
sort_groups='sorted')
This module also provides a wrapper base class :obj:TemplateListItem
for when the checkbox option is wrapping another element,
e.g. a Revit ViewSheet. Derive from this base class and define the
name property to customize how the checkbox is named on the dialog.
from pyrevit import forms
class MyOption(forms.TemplateListItem):
@property
def name(self):
return '{} - {}{}'.format(self.item.SheetNumber,
self.item.SheetNumber)
ops = [MyOption('op1'), MyOption('op2', True), MyOption('op3')]
res = forms.SelectFromList.show(ops,
multiselect=True,
button_name='Select Item')
[bool(x) for x in res] # or [x.state for x in res]
[True, False, True]
Initialize user input window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
Title = title or 'pyRevit'
instance-attribute
Width = width
instance-attribute
Height = height
instance-attribute
response = None
instance-attribute
Owner = owner
instance-attribute
WindowStartupLocation = framework.Windows.WindowStartupLocation.CenterOwner
instance-attribute
in_check = False
class-attribute
instance-attribute
in_uncheck = False
class-attribute
instance-attribute
xaml_source = 'SelectFromList.xaml'
class-attribute
instance-attribute
use_regex
property
Is using regex?
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
handle_input_key(sender, args)
set_icon(icon_path)
setup_icon()
hide()
show(context, title='User Input', width=DEFAULT_INPUTWINDOW_WIDTH, height=DEFAULT_INPUTWINDOW_HEIGHT, **kwargs)
classmethod
Show user input window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
context |
any
|
window context element(s) |
required |
title |
str
|
window title |
'User Input'
|
width |
int
|
window width |
DEFAULT_INPUTWINDOW_WIDTH
|
height |
int
|
window height |
DEFAULT_INPUTWINDOW_HEIGHT
|
**kwargs |
any
|
other arguments to be passed to window |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
toggle_all(sender, args)
check_all(sender, args)
uncheck_all(sender, args)
check_selected(sender, args)
Mark selected checkboxes as checked.
Source code in pyrevitlib/pyrevit/forms/__init__.py
uncheck_selected(sender, args)
Mark selected checkboxes as unchecked.
Source code in pyrevitlib/pyrevit/forms/__init__.py
button_reset(sender, args)
button_select(sender, args)
search_txt_changed(sender, args)
Handle text change in search box.
Source code in pyrevitlib/pyrevit/forms/__init__.py
selection_changed(sender, args)
selected_item_changed(sender, args)
Handle selected item change.
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_regex(sender, args)
Activate regex in search.
Source code in pyrevitlib/pyrevit/forms/__init__.py
CommandSwitchWindow(context, title, width, height, **kwargs)
Bases: TemplateUserInputWindow
Standard form to select from a list of command options.
Other Parameters:
Name | Type | Description |
---|---|---|
context |
list[str]
|
list of command options to choose from |
switches |
list[str]
|
list of on/off switches |
message |
str
|
window title message |
config |
dict
|
dictionary of config dicts for options or switches |
recognize_access_key |
bool
|
recognize '_' as mark of access key |
Returns:
Type | Description |
---|---|
str | tuple[str, dict]
|
name of selected option.
if |
Examples:
This is an example with series of command options:
from pyrevit import forms
ops = ['option1', 'option2', 'option3', 'option4']
forms.CommandSwitchWindow.show(ops, message='Select Option')
'option2'
A more advanced example of combining command options, on/off switches, and option or switch configuration options:
from pyrevit import forms
ops = ['option1', 'option2', 'option3', 'option4']
switches = ['switch1', 'switch2']
cfgs = {'option1': { 'background': '0xFF55FF'}}
rops, rswitches = forms.CommandSwitchWindow.show(
ops,
switches=switches
message='Select Option',
config=cfgs,
recognize_access_key=False
)
rops
'option2'
rswitches
{'switch1': False, 'switch2': True}
Initialize user input window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
Title = title or 'pyRevit'
instance-attribute
Width = width
instance-attribute
Height = height
instance-attribute
response = None
instance-attribute
Owner = owner
instance-attribute
WindowStartupLocation = framework.Windows.WindowStartupLocation.CenterOwner
instance-attribute
xaml_source = 'CommandSwitchWindow.xaml'
class-attribute
instance-attribute
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
set_icon(icon_path)
setup_icon()
hide()
show(context, title='User Input', width=DEFAULT_INPUTWINDOW_WIDTH, height=DEFAULT_INPUTWINDOW_HEIGHT, **kwargs)
classmethod
Show user input window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
context |
any
|
window context element(s) |
required |
title |
str
|
window title |
'User Input'
|
width |
int
|
window width |
DEFAULT_INPUTWINDOW_WIDTH
|
height |
int
|
window height |
DEFAULT_INPUTWINDOW_HEIGHT
|
**kwargs |
any
|
other arguments to be passed to window |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
handle_click(sender, args)
handle_input_key(sender, args)
Handle keyboard inputs.
Source code in pyrevitlib/pyrevit/forms/__init__.py
search_txt_changed(sender, args)
process_option(sender, args)
GetValueWindow(context, title, width, height, **kwargs)
Bases: TemplateUserInputWindow
Standard form to get simple values from user.
Examples:
from pyrevit import forms
items = ['item1', 'item2', 'item3']
forms.SelectFromList.show(items, button_name='Select Item')
['item1']
Initialize user input window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
Title = title or 'pyRevit'
instance-attribute
Width = width
instance-attribute
Height = height
instance-attribute
response = None
instance-attribute
Owner = owner
instance-attribute
WindowStartupLocation = framework.Windows.WindowStartupLocation.CenterOwner
instance-attribute
xaml_source = 'GetValueWindow.xaml'
class-attribute
instance-attribute
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
handle_input_key(sender, args)
set_icon(icon_path)
setup_icon()
hide()
show(context, title='User Input', width=DEFAULT_INPUTWINDOW_WIDTH, height=DEFAULT_INPUTWINDOW_HEIGHT, **kwargs)
classmethod
Show user input window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
context |
any
|
window context element(s) |
required |
title |
str
|
window title |
'User Input'
|
width |
int
|
window width |
DEFAULT_INPUTWINDOW_WIDTH
|
height |
int
|
window height |
DEFAULT_INPUTWINDOW_HEIGHT
|
**kwargs |
any
|
other arguments to be passed to window |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
string_value_changed(sender, args)
Handle string vlaue update event.
Source code in pyrevitlib/pyrevit/forms/__init__.py
select(sender, args)
Process input data and set the response.
Source code in pyrevitlib/pyrevit/forms/__init__.py
TemplatePromptBar(height=32, **kwargs)
Bases: WPFWindow
Template context-manager class for creating prompt bars.
Prompt bars are show at the top of the active Revit window and are designed for better prompt visibility.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
height |
int
|
window height |
32
|
**kwargs |
Any
|
other arguments to be passed to :func: |
{}
|
Initialize user prompt window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
xaml_source = 'TemplatePromptBar.xaml'
class-attribute
instance-attribute
user_height = height
instance-attribute
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
handle_input_key(sender, args)
set_icon(icon_path)
setup_icon()
hide()
show(modal=False)
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
update_window()
Update the prompt bar to match Revit window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
WarningBar(height=32, **kwargs)
Bases: TemplatePromptBar
Show warning bar at the top of Revit window.
Other Parameters:
Name | Type | Description |
---|---|---|
title |
string
|
warning bar text |
Examples:
Initialize user prompt window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
user_height = height
instance-attribute
xaml_source = 'WarningBar.xaml'
class-attribute
instance-attribute
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
handle_input_key(sender, args)
set_icon(icon_path)
setup_icon()
hide()
show(modal=False)
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
update_window()
Update the prompt bar to match Revit window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
ProgressBar(height=32, **kwargs)
Bases: TemplatePromptBar
Show progress bar at the top of Revit window.
Other Parameters:
Name | Type | Description |
---|---|---|
title |
string
|
progress bar text, defaults to 0/100 progress format |
indeterminate |
bool
|
create indeterminate progress bar |
cancellable |
bool
|
add cancel button to progress bar |
step |
int
|
update progress intervals |
Examples:
from pyrevit import forms
count = 1
with forms.ProgressBar(title='my command progress message') as pb:
# do stuff
pb.update_progress(count, 100)
count += 1
Progress bar title could also be customized to show the current and total progress values. In example below, the progress bar message will be in format "0 of 100"
By default progress bar updates the progress every time the .update_progress method is called. For operations with a large number of max steps, the gui update process time will have a significate effect on the overall execution time of the command. In these cases, set the value of step argument to something larger than 1. In example below, the progress bar updates once per every 10 units of progress.
Progress bar could also be set to indeterminate for operations of unknown length. In this case, the progress bar will show an infinitely running ribbon:
if cancellable is set on the object, a cancel button will show on the progress bar and .cancelled attribute will be set on the ProgressBar instance if users clicks on cancel button:
with forms.ProgressBar(title='message',
cancellable=True) as pb:
# do stuff
if pb.cancelled:
# wrap up and cancel operation
Initialize user prompt window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
user_height = height
instance-attribute
xaml_source = 'ProgressBar.xaml'
class-attribute
instance-attribute
title
property
writable
Progress bar title.
indeterminate
property
writable
Progress bar indeterminate state.
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
handle_input_key(sender, args)
set_icon(icon_path)
setup_icon()
hide()
show(modal=False)
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
update_window()
Update the prompt bar to match Revit window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
clicked_cancel(sender, args)
Handler for cancel button clicked event.
reset()
update_progress(new_value, max_value=1)
Update progress bar state with given min, max values.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
new_value |
float
|
current progress value |
required |
max_value |
float
|
total progress value |
1
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
SearchPrompt(search_db, width, height, **kwargs)
Bases: WPFWindow
Standard prompt for pyRevit search.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
search_db |
list
|
list of possible search targets |
required |
width |
int
|
width of search prompt window |
required |
height |
int
|
height of search prompt window |
required |
Other Parameters:
Name | Type | Description |
---|---|---|
search_tip |
str
|
text to show in grayscale when search box is empty |
switches |
str
|
list of switches |
Returns:
Type | Description |
---|---|
tuple[str, dict] | str
|
matched string if switches are not provided, matched strings, and dict of switches otherwise. |
Examples:
from pyrevit import forms
# assume search input of '/switch1 target1'
matched_str, args, switches = forms.SearchPrompt.show(
search_db=['target1', 'target2', 'target3', 'target4'],
switches=['/switch1', '/switch2'],
search_tip='pyRevit Search'
)
matched_str
'target1'
args
['--help', '--branch', 'branchname']
switches
{'/switch1': True, '/switch2': False}
Initialize search prompt window.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
pyrevit_version
property
Active pyRevit formatted version e.g. '4.9-beta'.
Width = width
instance-attribute
MinWidth = self.Width
instance-attribute
Height = height
instance-attribute
search_tip = kwargs.get('search_tip', '')
instance-attribute
search_input
property
writable
Current search input.
search_input_parts
property
Current cleaned up search term.
search_term
property
Current cleaned up search term.
search_term_switches
property
Find matching switches in search term.
search_term_args
property
Find arguments in search term.
search_term_main
property
Current cleaned up search term without the listed switches.
search_matches
property
List of matches for the given search term.
Functions
load_xaml(xaml_source, literal_string=False, handle_esc=True, set_owner=True)
Load the window XAML file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
The XAML content or file path to load. |
required |
literal_string |
bool
|
True if |
False
|
handle_esc |
bool
|
Whether the ESC key should be handled. Defaults to True. |
True
|
set_owner |
bool
|
Whether to se the window owner. Defaults to True. |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
merge_resource_dict(xaml_source)
Merge a ResourceDictionary xaml file with this window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
xaml_source |
str
|
xaml file with the resource dictionary |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
get_locale_string(string_name)
Get localized string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
string_name |
str
|
string name |
required |
Returns:
Type | Description |
---|---|
str
|
localized string |
setup_owner()
setup_resources(wpf_ctrl)
staticmethod
Sets the WPF resources.
Source code in pyrevitlib/pyrevit/forms/__init__.py
setup_default_handlers()
handle_input_key(sender, args)
set_icon(icon_path)
setup_icon()
hide()
show_dialog()
set_image_source_file(wpf_element, image_file)
staticmethod
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_image_source(wpf_element, image_file)
Set source file for image element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wpf_element |
Image
|
xaml image element |
required |
image_file |
str
|
image file path |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
dispatch(func, *args, **kwargs)
Runs the function in a new thread.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
function to run |
required |
*args |
Any
|
positional arguments to pass to func |
()
|
**kwargs |
Any
|
keyword arguments to pass to func |
{}
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
conceal()
hide_element(*wpf_elements)
staticmethod
Collapse elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be collaped |
()
|
show_element(*wpf_elements)
staticmethod
Show collapsed elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be set to visible. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
toggle_element(*wpf_elements)
staticmethod
Toggle visibility of elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be toggled. |
()
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
disable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
enable_element(*wpf_elements)
staticmethod
Enable elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*wpf_elements |
list[UIElement]
|
WPF framework elements to be enabled |
()
|
handle_url_click(sender, args)
Callback for handling click on package website url.
update_results_display(fill_match=False)
Update search prompt results based on current input text.
Source code in pyrevitlib/pyrevit/forms/__init__.py
set_search_results(*args)
Set search results for returning.
Source code in pyrevitlib/pyrevit/forms/__init__.py
find_direct_match(input_text)
Find direct text matches in search term.
Source code in pyrevitlib/pyrevit/forms/__init__.py
find_word_match(input_text)
Find direct word matches in search term.
Source code in pyrevitlib/pyrevit/forms/__init__.py
search_txt_changed(sender, args)
Handle text changed event.
Source code in pyrevitlib/pyrevit/forms/__init__.py
handle_kb_key(sender, args)
Handle keyboard input event.
Source code in pyrevitlib/pyrevit/forms/__init__.py
show(search_db, width=DEFAULT_SEARCHWND_WIDTH, height=DEFAULT_SEARCHWND_HEIGHT, **kwargs)
classmethod
Show search prompt.
Source code in pyrevitlib/pyrevit/forms/__init__.py
RevisionOption(revision_element)
Bases: TemplateListItem
Revision wrapper for :func:select_revisions
.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
item = orig_item
instance-attribute
state = checked
instance-attribute
checkable
property
writable
List Item CheckBox Visibility.
name
property
Revision name (description).
Functions
add_PropertyChanged(value)
remove_PropertyChanged(value)
OnPropertyChanged(prop_name)
Called when a property is changed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prop_name |
str
|
property name |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
unwrap()
SheetOption(sheet_element)
Bases: TemplateListItem
Sheet wrapper for :func:select_sheets
.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
item = orig_item
instance-attribute
state = checked
instance-attribute
checkable
property
writable
List Item CheckBox Visibility.
name
property
Sheet name.
number
property
Sheet number.
Functions
add_PropertyChanged(value)
remove_PropertyChanged(value)
OnPropertyChanged(prop_name)
Called when a property is changed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prop_name |
str
|
property name |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
unwrap()
ViewOption(view_element)
Bases: TemplateListItem
View wrapper for :func:select_views
.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
item = orig_item
instance-attribute
state = checked
instance-attribute
checkable
property
writable
List Item CheckBox Visibility.
name
property
View name.
Functions
add_PropertyChanged(value)
remove_PropertyChanged(value)
OnPropertyChanged(prop_name)
Called when a property is changed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prop_name |
str
|
property name |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
unwrap()
LevelOption(level_element)
Bases: TemplateListItem
Level wrapper for :func:select_levels
.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
item = orig_item
instance-attribute
state = checked
instance-attribute
checkable
property
writable
List Item CheckBox Visibility.
name
property
Level name.
Functions
add_PropertyChanged(value)
remove_PropertyChanged(value)
OnPropertyChanged(prop_name)
Called when a property is changed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prop_name |
str
|
property name |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
unwrap()
FamilyParamOption(fparam, builtin=False, labeled=False)
Bases: TemplateListItem
Level wrapper for :func:select_family_parameters
.
Source code in pyrevitlib/pyrevit/forms/__init__.py
Attributes
item = orig_item
instance-attribute
state = checked
instance-attribute
checkable
property
writable
List Item CheckBox Visibility.
isbuiltin = builtin
instance-attribute
islabeled = labeled
instance-attribute
name
property
Family Parameter name.
istype
property
Is type parameter.
Functions
add_PropertyChanged(value)
remove_PropertyChanged(value)
OnPropertyChanged(prop_name)
Called when a property is changed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prop_name |
str
|
property name |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
unwrap()
Functions
is_registered_dockable_panel(panel_type)
Check if dockable panel is already registered.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
panel_type |
WPFPanel
|
dockable panel type |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
register_dockable_panel(panel_type, default_visible=True)
Register dockable panel.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
panel_type |
WPFPanel
|
dockable panel type |
required |
default_visible |
bool
|
whether panel should be visible by default |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
open_dockable_panel(panel_type_or_id)
Open previously registered dockable panel.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
panel_type_or_id |
(WPFPanel, str)
|
panel type or id |
required |
close_dockable_panel(panel_type_or_id)
Close previously registered dockable panel.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
panel_type_or_id |
(WPFPanel, str)
|
panel type or id |
required |
toggle_dockable_panel(panel_type_or_id, state)
Toggle previously registered dockable panel.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
panel_type_or_id |
WPFPanel | str
|
panel type or id |
required |
state |
bool
|
True to show the panel, False to hide it. |
required |
Source code in pyrevitlib/pyrevit/forms/__init__.py
select_revisions(title='Select Revision', button_name='Select', width=DEFAULT_INPUTWINDOW_WIDTH, multiple=True, filterfunc=None, doc=None)
Standard form for selecting revisions.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
list window title |
'Select Revision'
|
button_name |
str
|
list window button caption |
'Select'
|
width |
int
|
width of list window |
DEFAULT_INPUTWINDOW_WIDTH
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
doc |
Document
|
source document for revisions; defaults to active document |
None
|
Returns:
Type | Description |
---|---|
list[Revision]
|
list of selected revisions |
Examples:
from pyrevit import forms
forms.select_revisions()
[<Autodesk.Revit.DB.Revision object>,
<Autodesk.Revit.DB.Revision object>]
Source code in pyrevitlib/pyrevit/forms/__init__.py
select_sheets(title='Select Sheets', button_name='Select', width=DEFAULT_INPUTWINDOW_WIDTH, multiple=True, filterfunc=None, doc=None, include_placeholder=True, use_selection=False)
Standard form for selecting sheets.
Sheets are grouped into sheet sets and sheet set can be selected from a drop down box at the top of window.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
list window title |
'Select Sheets'
|
button_name |
str
|
list window button caption |
'Select'
|
width |
int
|
width of list window |
DEFAULT_INPUTWINDOW_WIDTH
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
doc |
Document
|
source document for sheets; defaults to active document |
None
|
include_placeholder |
bool
|
include a placeholder. Defaults to True |
True
|
use_selection |
bool
|
ask if user wants to use currently selected sheets. |
False
|
Returns:
Type | Description |
---|---|
list[ViewSheet]
|
list of selected sheets |
Examples:
from pyrevit import forms
forms.select_sheets()
[<Autodesk.Revit.DB.ViewSheet object>,
<Autodesk.Revit.DB.ViewSheet object>]
Source code in pyrevitlib/pyrevit/forms/__init__.py
2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 |
|
select_views(title='Select Views', button_name='Select', width=DEFAULT_INPUTWINDOW_WIDTH, multiple=True, filterfunc=None, doc=None, use_selection=False)
Standard form for selecting views.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
list window title |
'Select Views'
|
button_name |
str
|
list window button caption |
'Select'
|
width |
int
|
width of list window |
DEFAULT_INPUTWINDOW_WIDTH
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
doc |
Document
|
source document for views; defaults to active document |
None
|
use_selection |
bool
|
ask if user wants to use currently selected views. |
False
|
Returns:
Type | Description |
---|---|
list[View]
|
list of selected views |
Examples:
from pyrevit import forms
forms.select_views()
[<Autodesk.Revit.DB.View object>,
<Autodesk.Revit.DB.View object>]
Source code in pyrevitlib/pyrevit/forms/__init__.py
2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 |
|
select_levels(title='Select Levels', button_name='Select', width=DEFAULT_INPUTWINDOW_WIDTH, multiple=True, filterfunc=None, doc=None, use_selection=False)
Standard form for selecting levels.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
list window title |
'Select Levels'
|
button_name |
str
|
list window button caption |
'Select'
|
width |
int
|
width of list window |
DEFAULT_INPUTWINDOW_WIDTH
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
doc |
Document
|
source document for levels; defaults to active document |
None
|
use_selection |
bool
|
ask if user wants to use currently selected levels. |
False
|
Returns:
Type | Description |
---|---|
list[Level]
|
list of selected levels |
Examples:
from pyrevit import forms
forms.select_levels()
[<Autodesk.Revit.DB.Level object>,
<Autodesk.Revit.DB.Level object>]
Source code in pyrevitlib/pyrevit/forms/__init__.py
2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 |
|
select_viewtemplates(title='Select View Templates', button_name='Select', width=DEFAULT_INPUTWINDOW_WIDTH, multiple=True, filterfunc=None, doc=None)
Standard form for selecting view templates.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
list window title |
'Select View Templates'
|
button_name |
str
|
list window button caption |
'Select'
|
width |
int
|
width of list window |
DEFAULT_INPUTWINDOW_WIDTH
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
doc |
Document
|
source document for views; defaults to active document |
None
|
Returns:
Type | Description |
---|---|
list[View]
|
list of selected view templates |
Examples:
from pyrevit import forms
forms.select_viewtemplates()
[<Autodesk.Revit.DB.View object>,
<Autodesk.Revit.DB.View object>]
Source code in pyrevitlib/pyrevit/forms/__init__.py
select_schedules(title='Select Schedules', button_name='Select', width=DEFAULT_INPUTWINDOW_WIDTH, multiple=True, filterfunc=None, doc=None)
Standard form for selecting schedules.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
list window title |
'Select Schedules'
|
button_name |
str
|
list window button caption |
'Select'
|
width |
int
|
width of list window |
DEFAULT_INPUTWINDOW_WIDTH
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
doc |
Document
|
source document for views; defaults to active document |
None
|
Returns:
Type | Description |
---|---|
list[ViewSchedule]
|
list of selected schedules |
Examples:
from pyrevit import forms
forms.select_schedules()
[<Autodesk.Revit.DB.ViewSchedule object>,
<Autodesk.Revit.DB.ViewSchedule object>]
Source code in pyrevitlib/pyrevit/forms/__init__.py
select_open_docs(title='Select Open Documents', button_name='OK', width=DEFAULT_INPUTWINDOW_WIDTH, multiple=True, check_more_than_one=True, filterfunc=None)
Standard form for selecting open documents.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
list window title |
'Select Open Documents'
|
button_name |
str
|
list window button caption |
'OK'
|
width |
int
|
width of list window |
DEFAULT_INPUTWINDOW_WIDTH
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
check_more_than_one |
bool
|
|
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
Returns:
Type | Description |
---|---|
list[Document]
|
list of selected documents |
Examples:
from pyrevit import forms
forms.select_open_docs()
[<Autodesk.Revit.DB.Document object>,
<Autodesk.Revit.DB.Document object>]
Source code in pyrevitlib/pyrevit/forms/__init__.py
select_titleblocks(title='Select Titleblock', button_name='Select', no_tb_option='No Title Block', width=DEFAULT_INPUTWINDOW_WIDTH, multiple=False, filterfunc=None, doc=None)
Standard form for selecting a titleblock.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
list window title |
'Select Titleblock'
|
button_name |
str
|
list window button caption |
'Select'
|
no_tb_option |
str
|
name of option for no title block |
'No Title Block'
|
width |
int
|
width of list window |
DEFAULT_INPUTWINDOW_WIDTH
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to False |
False
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
doc |
Document
|
source document for titleblocks; defaults to active document |
None
|
Returns:
Type | Description |
---|---|
ElementId
|
selected titleblock id. |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
select_swatch(title='Select Color Swatch', button_name='Select')
Standard form for selecting a color swatch.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
swatch list window title |
'Select Color Swatch'
|
button_name |
str
|
swatch list window button caption |
'Select'
|
Returns:
Type | Description |
---|---|
RGB
|
rgb color |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
select_image(images, title='Select Image', button_name='Select')
Standard form for selecting an image.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
images |
list[str] | list[BitmapImage]
|
list of image file paths or bitmaps |
required |
title |
str
|
swatch list window title |
'Select Image'
|
button_name |
str
|
swatch list window button caption |
'Select'
|
Returns:
Type | Description |
---|---|
str
|
path of the selected image |
Examples:
from pyrevit import forms
forms.select_image(['C:/path/to/image1.png',
'C:/path/to/image2.png'],
title="Select Variation")
'C:/path/to/image1.png'
Source code in pyrevitlib/pyrevit/forms/__init__.py
select_parameters(src_element, title='Select Parameters', button_name='Select', multiple=True, filterfunc=None, include_instance=True, include_type=True, exclude_readonly=True)
Standard form for selecting parameters from given element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
src_element |
Element
|
source element |
required |
title |
str
|
list window title |
'Select Parameters'
|
button_name |
str
|
list window button caption |
'Select'
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
include_instance |
bool
|
list instance parameters |
True
|
include_type |
bool
|
list type parameters |
True
|
exclude_readonly |
bool
|
only shows parameters that are editable |
True
|
Returns:
Type | Description |
---|---|
list[ParamDef]
|
list of paramdef objects |
Examples:
forms.select_parameter(
src_element,
title='Select Parameters',
multiple=True,
include_instance=True,
include_type=True
)
[<ParamDef >, <ParamDef >]
Source code in pyrevitlib/pyrevit/forms/__init__.py
2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 |
|
select_family_parameters(family_doc, title='Select Parameters', button_name='Select', multiple=True, filterfunc=None, include_instance=True, include_type=True, include_builtin=True, include_labeled=True)
Standard form for selecting parameters from given family document.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
family_doc |
Document
|
source family document |
required |
title |
str
|
list window title |
'Select Parameters'
|
button_name |
str
|
list window button caption |
'Select'
|
multiple |
bool
|
allow multi-selection (uses check boxes). defaults to True |
True
|
filterfunc |
function
|
filter function to be applied to context items. |
None
|
include_instance |
bool
|
list instance parameters |
True
|
include_type |
bool
|
list type parameters |
True
|
include_builtin |
bool
|
list builtin parameters |
True
|
include_labeled |
bool
|
list parameters used as labels |
True
|
Returns:
Type | Description |
---|---|
list[FamilyParameter]
|
list of family parameter objects |
Examples:
forms.select_family_parameters(
family_doc,
title='Select Parameters',
multiple=True,
include_instance=True,
include_type=True
)
[<DB.FamilyParameter >, <DB.FamilyParameter >]
Source code in pyrevitlib/pyrevit/forms/__init__.py
2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 |
|
alert(msg, title=None, sub_msg=None, expanded=None, footer='', ok=True, cancel=False, yes=False, no=False, retry=False, warn_icon=True, options=None, exitscript=False)
Show a task dialog with given message.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
msg |
str
|
message to be displayed |
required |
title |
str
|
task dialog title |
None
|
sub_msg |
str
|
sub message, use html to create clickable links |
None
|
expanded |
str
|
expanded area message |
None
|
footer |
str
|
footer text |
''
|
ok |
bool
|
show OK button, defaults to True |
True
|
cancel |
bool
|
show Cancel button, defaults to False |
False
|
yes |
bool
|
show Yes button, defaults to False |
False
|
no |
bool
|
show NO button, defaults to False |
False
|
retry |
bool
|
show Retry button, defaults to False |
False
|
warn_icon |
bool
|
show warning icon |
True
|
options |
list[str]
|
list of command link titles in order |
None
|
exitscript |
bool
|
exit if cancel or no, defaults to False |
False
|
Returns:
Type | Description |
---|---|
bool
|
True if okay, yes, or retry, otherwise False |
Examples:
from pyrevit import forms
forms.alert('Are you sure?',
sub_msg='<a href=\"https://discourse.pyrevitlabs.io/ \">Click here if you are not sure and want to go to the pyRevit Forum</a>',
ok=False, yes=True, no=True, exitscript=True)
Source code in pyrevitlib/pyrevit/forms/__init__.py
2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 |
|
alert_ifnot(condition, msg, *args, **kwargs)
Show a task dialog with given message if condition is NOT met.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
condition |
bool
|
condition to test |
required |
msg |
str
|
message to be displayed |
required |
*args |
Any
|
additional arguments |
()
|
**kwargs |
Any
|
additional keyword arguments |
{}
|
Other Parameters:
Name | Type | Description |
---|---|---|
title |
str
|
task dialog title |
ok |
bool
|
show OK button, defaults to True |
cancel |
bool
|
show Cancel button, defaults to False |
yes |
bool
|
show Yes button, defaults to False |
no |
bool
|
show NO button, defaults to False |
retry |
bool
|
show Retry button, defaults to False |
exitscript |
bool
|
exit if cancel or no, defaults to False |
Returns:
Type | Description |
---|---|
bool
|
True if okay, yes, or retry, otherwise False |
Examples:
from pyrevit import forms
forms.alert_ifnot(value > 12,
'Are you sure?',
ok=False, yes=True, no=True, exitscript=True)
Source code in pyrevitlib/pyrevit/forms/__init__.py
pick_folder(title=None, owner=None)
Show standard windows pick folder dialog.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
title for the window |
None
|
owner |
object
|
owner of the dialog |
None
|
Returns:
Type | Description |
---|---|
str
|
folder path |
Source code in pyrevitlib/pyrevit/forms/__init__.py
result_item_result_clicked(sender, e, debug=False)
Callback for a result item click event.
show_balloon(header, text, tooltip='', group='', is_favourite=False, is_new=False, timestamp=None, click_result=result_item_result_clicked)
Show ballon in the info center section.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
header |
str
|
Category section (Bold) |
required |
text |
str
|
Title section (Regular) |
required |
tooltip |
str
|
Tooltip |
''
|
group |
str
|
Group |
''
|
is_favourite |
bool
|
Add a blue star before header |
False
|
is_new |
bool
|
Flag to new |
False
|
timestamp |
str
|
Set timestamp |
None
|
click_result |
def
|
Executed after a click event |
result_item_result_clicked
|
Examples:
from pyrevit import forms
date = '2019-01-01 00:00:00'
date = datetime.datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
forms.show_balloon("my header", "Lorem ipsum", tooltip='tooltip', group='group', is_favourite=True, is_new=True, timestamp = date, click_result = forms.result_item_result_clicked)
Source code in pyrevitlib/pyrevit/forms/__init__.py
pick_file(file_ext='*', files_filter='', init_dir='', restore_dir=True, multi_file=False, unc_paths=False, title=None)
Pick file dialog to select a destination file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
file_ext |
str
|
file extension |
'*'
|
files_filter |
str
|
file filter |
''
|
init_dir |
str
|
initial directory |
''
|
restore_dir |
bool
|
restore last directory |
True
|
multi_file |
bool
|
allow select multiple files |
False
|
unc_paths |
bool
|
return unc paths |
False
|
title |
str
|
text to show in the title bar |
None
|
Returns:
Type | Description |
---|---|
str | list[str]
|
file path or list of file paths if multi_file=True |
Examples:
forms.pick_file(file_ext='csv', multi_file=True)
[r'C:\output\somefile1.csv', r'C:\output\somefile2.csv']
forms.pick_file(files_filter='All Files (*.*)|*.*|'
'Excel Workbook (*.xlsx)|*.xlsx|'
'Excel 97-2003 Workbook|*.xls',
multi_file=True)
[r'C:\output\somefile1.xlsx', r'C:\output\somefile2.xls']
Source code in pyrevitlib/pyrevit/forms/__init__.py
save_file(file_ext='', files_filter='', init_dir='', default_name='', restore_dir=True, unc_paths=False, title=None)
Save file dialog to select a destination file for data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
file_ext |
str
|
file extension |
''
|
files_filter |
str
|
file filter |
''
|
init_dir |
str
|
initial directory |
''
|
default_name |
str
|
default file name |
''
|
restore_dir |
bool
|
restore last directory |
True
|
unc_paths |
bool
|
return unc paths |
False
|
title |
str
|
text to show in the title bar |
None
|
Returns:
Type | Description |
---|---|
str
|
file path |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
pick_excel_file(save=False, title=None)
File pick/save dialog for an excel file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
save |
bool
|
show file save dialog, instead of file pick dialog |
False
|
title |
str
|
text to show in the title bar |
None
|
Returns:
Type | Description |
---|---|
str
|
file path |
Source code in pyrevitlib/pyrevit/forms/__init__.py
save_excel_file(title=None)
File save dialog for an excel file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title |
str
|
text to show in the title bar |
None
|
Returns:
Type | Description |
---|---|
str
|
file path |
check_workshared(doc=None, message='Model is not workshared.')
Verify if model is workshared and notify user if not.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
doc |
Document
|
target document, current of not provided |
None
|
message |
str
|
prompt message if returning False |
'Model is not workshared.'
|
Returns:
Type | Description |
---|---|
bool
|
True if doc is workshared |
Source code in pyrevitlib/pyrevit/forms/__init__.py
check_selection(exitscript=False, message='At least one element must be selected.')
Verify if selection is not empty notify user if it is.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
exitscript |
bool
|
exit script if returning False |
False
|
message |
str
|
prompt message if returning False |
'At least one element must be selected.'
|
Returns:
Type | Description |
---|---|
bool
|
True if selection has at least one item |
Source code in pyrevitlib/pyrevit/forms/__init__.py
check_familydoc(doc=None, family_cat=None, exitscript=False)
Verify document is a Family and notify user if not.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
doc |
Document
|
target document, current of not provided |
None
|
family_cat |
str
|
family category name |
None
|
exitscript |
bool
|
exit script if returning False |
False
|
Returns:
Type | Description |
---|---|
bool
|
True if doc is a Family and of provided category |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
check_modeldoc(doc=None, exitscript=False)
Verify document is a not a Model and notify user if not.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
doc |
Document
|
target document, current of not provided |
None
|
exitscript |
bool
|
exit script if returning False |
False
|
Returns:
Type | Description |
---|---|
bool
|
True if doc is a Model |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
check_modelview(view, exitscript=False)
Verify target view is a model view.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
view |
View
|
target view |
required |
exitscript |
bool
|
exit script if returning False |
False
|
Returns:
Type | Description |
---|---|
bool
|
True if view is model view |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
check_viewtype(view, view_type, exitscript=False)
Verify target view is of given type.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
view |
View
|
target view |
required |
view_type |
ViewType
|
type of view |
required |
exitscript |
bool
|
exit script if returning False |
False
|
Returns:
Type | Description |
---|---|
bool
|
True if view is of given type |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
check_graphicalview(view, exitscript=False)
Verify target view is a graphical view.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
view |
View
|
target view |
required |
exitscript |
bool
|
exit script if returning False |
False
|
Returns:
Type | Description |
---|---|
bool
|
True if view is a graphical view |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
toast(message, title='pyRevit', appid='pyRevit', icon=None, click=None, actions=None)
Show a Windows 10 notification.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message |
str
|
notification message |
required |
title |
str
|
notification title |
'pyRevit'
|
appid |
str
|
app name (will show under message) |
'pyRevit'
|
icon |
str
|
file path to icon .ico file (defaults to pyRevit icon) |
None
|
click |
str
|
click action commands string |
None
|
actions |
dict
|
dictionary of button names and action strings |
None
|
Examples:
script.toast("Hello World!",
title="My Script",
appid="MyAPP",
click="https://pyrevitlabs.github.io/pyRevit/",
actions={
"Open Google":"https://google.com",
"Open Toast64":"https://github.com/go-toast/toast"
})
Source code in pyrevitlib/pyrevit/forms/__init__.py
ask_for_string(default=None, prompt=None, title=None, **kwargs)
Ask user to select a string value.
This is a shortcut function that configures :obj:GetValueWindow
for
string data types. kwargs can be used to pass on other arguments.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
default |
str
|
default unique string. must not be in reserved_values |
None
|
prompt |
str
|
prompt message |
None
|
title |
str
|
title message |
None
|
kwargs |
type
|
other arguments to be passed to :obj: |
{}
|
Returns:
Type | Description |
---|---|
str
|
selected string value |
Examples:
forms.ask_for_string(
default='some-tag',
prompt='Enter new tag name:',
title='Tag Manager')
'new-tag'
Source code in pyrevitlib/pyrevit/forms/__init__.py
ask_for_unique_string(reserved_values, default=None, prompt=None, title=None, **kwargs)
Ask user to select a unique string value.
This is a shortcut function that configures :obj:GetValueWindow
for
unique string data types. kwargs can be used to pass on other arguments.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
reserved_values |
list[str]
|
list of reserved (forbidden) values |
required |
default |
str
|
default unique string. must not be in reserved_values |
None
|
prompt |
str
|
prompt message |
None
|
title |
str
|
title message |
None
|
kwargs |
type
|
other arguments to be passed to :obj: |
{}
|
Returns:
Type | Description |
---|---|
str
|
selected unique string |
Examples:
forms.ask_for_unique_string(
prompt='Enter a Unique Name',
title=self.Title,
reserved_values=['Ehsan', 'Gui', 'Guido'],
owner=self)
'unique string'
In example above, owner argument is provided to be passed to underlying
:obj:GetValueWindow
.
Source code in pyrevitlib/pyrevit/forms/__init__.py
ask_for_one_item(items, default=None, prompt=None, title=None, **kwargs)
Ask user to select an item from a list of items.
This is a shortcut function that configures :obj:GetValueWindow
for
'single-select' data types. kwargs can be used to pass on other arguments.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
items |
list[str]
|
list of items to choose from |
required |
default |
str
|
default selected item |
None
|
prompt |
str
|
prompt message |
None
|
title |
str
|
title message |
None
|
kwargs |
type
|
other arguments to be passed to :obj: |
{}
|
Returns:
Type | Description |
---|---|
str
|
selected item |
Examples:
forms.ask_for_one_item(
['test item 1', 'test item 2', 'test item 3'],
default='test item 2',
prompt='test prompt',
title='test title'
)
'test item 1'
Source code in pyrevitlib/pyrevit/forms/__init__.py
ask_for_date(default=None, prompt=None, title=None, **kwargs)
Ask user to select a date value.
This is a shortcut function that configures :obj:GetValueWindow
for
date data types. kwargs can be used to pass on other arguments.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
default |
datetime
|
default selected date value |
None
|
prompt |
str
|
prompt message |
None
|
title |
str
|
title message |
None
|
kwargs |
type
|
other arguments to be passed to :obj: |
{}
|
Returns:
Type | Description |
---|---|
datetime
|
selected date |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
ask_for_number_slider(default=None, min=0, max=100, interval=1, prompt=None, title=None, **kwargs)
Ask user to select a number value.
This is a shortcut function that configures :obj:GetValueWindow
for
numbers. kwargs can be used to pass on other arguments.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
default |
str
|
default unique string. must not be in reserved_values |
None
|
min |
int
|
minimum value on slider |
0
|
max |
int
|
maximum value on slider |
100
|
interval |
int
|
number interval between values |
1
|
prompt |
str
|
prompt message |
None
|
title |
str
|
title message |
None
|
kwargs |
type
|
other arguments to be passed to :obj: |
{}
|
Returns:
Type | Description |
---|---|
str
|
selected string value |
Examples:
forms.ask_for_number_slider(
default=50,
min = 0,
max = 100,
interval = 5,
prompt='Select a number:',
title='test title')
'50'
In this example, the slider will allow values such as '40, 45, 50, 55, 60' etc
Source code in pyrevitlib/pyrevit/forms/__init__.py
ask_to_use_selected(type_name, count=None, multiple=True)
Ask user if wants to use currently selected elements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
type_name |
str
|
Element type of expected selected elements |
required |
count |
int
|
Number of selected items |
None
|
multiple |
bool
|
Whether multiple selected items are allowed |
True
|
Source code in pyrevitlib/pyrevit/forms/__init__.py
ask_for_color(default=None)
Show system color picker and ask for color.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
default |
str
|
default color in HEX ARGB e.g. #ff808080 |
None
|
Returns:
Type | Description |
---|---|
str
|
selected color in HEX ARGB e.g. #ff808080, or None if cancelled |
Examples:
Source code in pyrevitlib/pyrevit/forms/__init__.py
inform_wip()
Show work-in-progress prompt to user and exit script.
Examples: