diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/bundle.yaml b/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/bundle.yaml new file mode 100644 index 000000000..b7279f565 --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/bundle.yaml @@ -0,0 +1,7 @@ +title: + fr_fr: Inclure ou exclure les paramètres du gabarit de vue + en_us: Include or exclude template parameters +tooltip: + fr_fr: Inclure ou exclure les paramètres du gabarit de vue - non fonctionnel pour les gabarits de vue 3D + en_us: Include or exclude template parameters, not functional for 3D view templates +author: Jean-Marc Couffin \ No newline at end of file diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/icon.png b/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/icon.png new file mode 100644 index 000000000..ea9bfd463 Binary files /dev/null and b/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/icon.png differ diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/script.py b/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/script.py new file mode 100644 index 000000000..800217f3e --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/Set View Template Controlled Parameters.pushbutton/script.py @@ -0,0 +1,54 @@ +from pyrevit import script, revit, DB, forms + +output = script.get_output() +output.close_others() + +doc = revit.doc + +templates = [v for v in DB.FilteredElementCollector( + doc).OfClass(DB.View).ToElements() if v.IsTemplate] + +view_templates, view_templates_names = [], [] +for template in templates: + if str(template.ViewType) != 'ThreeD': + view_templates.append(template) + +params_names, params = [], [] +for template in view_templates: + for p in template.Parameters: + if p.Definition.Name not in params_names: + params.append(p) + params_names.append(p.Definition.Name) + +selected_view_templates = forms.SelectFromList.show( + view_templates, button_name='Select Template', multiselect=True, name_attr='Name') + +parameters_processed = forms.SelectFromList.show( + params_names, button_name='Select Parameters', multiselect=True) +for param in params: + if param.Definition.Name not in parameters_processed: + params.remove(param) +params_ids = [p.Id for p in params] + +inclusion = forms.CommandSwitchWindow.show( + ['Include', 'Exclude'], message='Include or Exclude parameters from selected templates?') +if inclusion == 'Include': + include = False +else: + include = True + +with revit.Transaction('set params in view templates'): + results = [] + for template in selected_view_templates: + all_params = template.GetTemplateParameterIds() + switch_off_param_ids = params_ids + + non_controlled_param_ids = template.GetNonControlledTemplateParameterIds() + for switch_off_param_id in switch_off_param_ids: + if include: + non_controlled_param_ids.Add(switch_off_param_id) + else: + non_controlled_param_ids.Remove(switch_off_param_id) + + template.SetNonControlledTemplateParameterIds(non_controlled_param_ids) + results.append(template) \ No newline at end of file diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/bundle.yaml b/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/bundle.yaml index d87e381c9..725347cfe 100644 --- a/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/bundle.yaml +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Drawing Set.panel/views.stack/Views.pulldown/bundle.yaml @@ -21,4 +21,6 @@ layout: - Create Parallel Section - Add Views to Sheets - Remove Empty Tags - - Remove Underlay From Selected Views \ No newline at end of file + - Remove Underlay From Selected Views + - ----- + - Set View Template Controlled Parameters \ No newline at end of file