Skip to content

Commit 4c84c03

Browse files
nodatasheetjmcouffin
authored andcommitted
add Associated to Others to select_family_parameters
1 parent 019ecbb commit 4c84c03

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

pyrevitlib/pyrevit/forms/FamilyParameterItemStyle.xaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
<Border x:Name="IsLabeled" Background="{DynamicResource pyRevitAccentBrush}" Height="16" Margin="5,0,0,0" Padding="8,0,8,0" Visibility="Collapsed" CornerRadius="4">
1111
<TextBlock Text="Used as Label" Foreground="White" FontSize="10"/>
1212
</Border>
13+
<Border x:Name="IsAssociated" Background="{DynamicResource pyRevitAccentBrush}" Height="16" Margin="5,0,0,0" Padding="8,0,8,0" Visibility="Collapsed" CornerRadius="4">
14+
<TextBlock Text="Associated to Others" Foreground="White" FontSize="10"/>
15+
</Border>
1316
</WrapPanel>
1417
<ControlTemplate.Triggers>
1518
<DataTrigger Binding="{Binding Path=istype}" Value="True">
@@ -21,5 +24,8 @@
2124
<DataTrigger Binding="{Binding Path=islabeled}" Value="True">
2225
<Setter TargetName="IsLabeled" Property="Visibility" Value="Visible"/>
2326
</DataTrigger>
27+
<DataTrigger Binding="{Binding Path=isassociated}" Value="True">
28+
<Setter TargetName="IsAssociated" Property="Visibility" Value="Visible"/>
29+
</DataTrigger>
2430
</ControlTemplate.Triggers>
2531
</ControlTemplate>

pyrevitlib/pyrevit/forms/__init__.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2035,10 +2035,11 @@ def name(self):
20352035

20362036
class FamilyParamOption(TemplateListItem):
20372037
"""Level wrapper for :func:`select_family_parameters`."""
2038-
def __init__(self, fparam, builtin=False, labeled=False):
2038+
def __init__(self, fparam, builtin=False, labeled=False, associated=False):
20392039
super(FamilyParamOption, self).__init__(fparam)
20402040
self.isbuiltin = builtin
20412041
self.islabeled = labeled
2042+
self.isassociated = associated
20422043

20432044
@property
20442045
def name(self):
@@ -2727,7 +2728,8 @@ def select_family_parameters(family_doc,
27272728
include_instance=True,
27282729
include_type=True,
27292730
include_builtin=True,
2730-
include_labeled=True):
2731+
include_labeled=True,
2732+
include_associated=True):
27312733
"""Standard form for selecting parameters from given family document.
27322734
27332735
Args:
@@ -2742,6 +2744,8 @@ def select_family_parameters(family_doc,
27422744
include_type (bool, optional): list type parameters
27432745
include_builtin (bool, optional): list builtin parameters
27442746
include_labeled (bool, optional): list parameters used as labels
2747+
include_associated (bool, optional):
2748+
list parameters associated to others
27452749
27462750
Returns:
27472751
(list[DB.FamilyParameter]): list of family parameter objects
@@ -2779,10 +2783,15 @@ def select_family_parameters(family_doc,
27792783
if not include_labeled and family_param.Id in label_param_ids:
27802784
continue
27812785

2786+
associated_to_others = not (family_param.AssociatedParameters.IsEmpty)
2787+
if not include_associated and associated_to_others:
2788+
continue
2789+
27822790
param_defs.append(
27832791
FamilyParamOption(family_param,
27842792
builtin=get_elementid_value(family_param.Id) < 0,
2785-
labeled=family_param.Id in label_param_ids)
2793+
labeled=family_param.Id in label_param_ids,
2794+
associated=associated_to_others)
27862795
)
27872796

27882797
param_defs.sort(key=lambda x: x.name)
@@ -2796,6 +2805,7 @@ def select_family_parameters(family_doc,
27962805
'Type Parameters': [x for x in param_defs if x.istype],
27972806
'Built-in Parameters': [x for x in param_defs if x.isbuiltin],
27982807
'Used as Label': [x for x in param_defs if x.islabeled],
2808+
'Associated to Others': [x for x in param_defs if x.isassociated],
27992809
},
28002810
title=title,
28012811
button_name=button_name,

0 commit comments

Comments
 (0)