From 0bde5871a45c9eda74a38001938a8c7941e00426 Mon Sep 17 00:00:00 2001 From: Wurschdhaud Date: Thu, 16 Jul 2026 09:30:44 +0200 Subject: [PATCH 1/5] initial commit new tool --- ...deWindow.ResourceDictionary.chinese_s.xaml | 35 ++ ...mSlideWindow.ResourceDictionary.de_de.xaml | 35 ++ ...mSlideWindow.ResourceDictionary.en_us.xaml | 35 ++ ...mSlideWindow.ResourceDictionary.es_es.xaml | 35 ++ ...mSlideWindow.ResourceDictionary.fr_fr.xaml | 35 ++ .../FamSlideWindow.ResourceDictionary.ko.xaml | 35 ++ ...mSlideWindow.ResourceDictionary.pt_br.xaml | 35 ++ .../FamSlideWindow.ResourceDictionary.ru.xaml | 35 ++ .../FamSlide.pushbutton/FamSlideWindow.xaml | 114 +++++ .../FamSlide.pushbutton/bundle.yaml | 43 ++ .../FamSlide.pushbutton/famslide_actions.py | 61 +++ .../famslide_paramutils.py | 160 +++++++ .../FamSlide.pushbutton/icon.dark.png | Bin 0 -> 671 bytes .../FamSlide.pushbutton/icon.png | Bin 0 -> 538 bytes .../FamSlide.pushbutton/script.py | 436 ++++++++++++++++++ .../ptools.stack/Family.pulldown/bundle.yaml | 1 + 16 files changed, 1095 insertions(+) create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.chinese_s.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.de_de.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.en_us.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.es_es.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.fr_fr.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.ko.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.pt_br.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.ru.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.xaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/bundle.yaml create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/famslide_actions.py create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/famslide_paramutils.py create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/icon.dark.png create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/icon.png create mode 100644 extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/script.py diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.chinese_s.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.chinese_s.xaml new file mode 100644 index 000000000..599c270b8 --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.chinese_s.xaml @@ -0,0 +1,35 @@ + + ⟲ 刷新文档 + 重新扫描当前族文档,检测新增或删除的参数。切换到其他已打开的族后也很有用。 + 打乱参数值。在当前滑块范围内为每个可编辑参数随机赋值。请谨慎使用 - 此操作无法在 FamSlide 中撤销。 + 删除所有未使用的参数。移除未驱动任何标注、未用于公式且非内置的族参数。请谨慎使用。 + 显示/隐藏可编辑参数。切换可通过滑块或复选框直接修改的参数的可见性。 + 显示/隐藏标签。切换每个参数名称下方小标签的显示。 + 关闭 + 关闭 FamSlide + 值参数 + 内置参数 + 是/否参数 + 使用中 + uF + dF + 内置 + 实例 + 类型 + 已关联 + (未加载族) + 当前没有活动的族文档 + + + 是否将所有可编辑参数在当前滑块范围内随机打乱? + +此操作无法在 FamSlide 中撤销 - 如需撤销请使用 Revit 自带的撤销功能。 + 是否删除所有未驱动标注、未用于公式且非内置的族参数? + +此操作无法在 FamSlide 中撤销 - 如需撤销请使用 Revit 自带的撤销功能。 + 没有活动的 Revit 文档。 + FamSlide 仅在族编辑器中可用。 +请打开一个族进行编辑,然后重新运行此工具。 + diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.de_de.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.de_de.xaml new file mode 100644 index 000000000..375a492f4 --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.de_de.xaml @@ -0,0 +1,35 @@ + + ⟲ Dokument aktualisieren + Durchsucht das aktive Familiendokument erneut nach neuen oder entfernten Parametern. Auch nützlich nach dem Wechsel zu einer anderen geöffneten Familie. + Parameterwerte mischen. Weist jedem editierbaren Parameter innerhalb seines aktuellen Schieberegler-Bereichs einen zufälligen Wert zu. Mit Vorsicht verwenden - dies kann in FamSlide nicht rückgängig gemacht werden. + Alle ungenutzten Parameter löschen. Entfernt Familienparameter, die keine Bemaßung steuern, in keiner Formel vorkommen und nicht integriert sind. Mit Vorsicht verwenden. + Editierbare Parameter ein-/ausblenden. Schaltet die Sichtbarkeit von Parametern um, deren Schieberegler oder Kontrollkästchen direkt geändert werden kann. + Beschriftungen ein-/ausblenden. Schaltet die kleinen Tags unter jedem Parameternamen um. + Schließen + FamSlide schließen + Wertparameter + Integrierte Parameter + Ja/Nein-Parameter + verwendet + uF + dF + integriert + Instanz + Typ + verknüpft + (keine Familie geladen) + Kein Familiendokument aktiv + Ja + Nein + Alle editierbaren Parameter innerhalb ihres aktuellen Schieberegler-Bereichs zufällig mischen? + +Dies kann in FamSlide nicht rückgängig gemacht werden - verwenden Sie bei Bedarf die Rückgängig-Funktion von Revit. + Alle Familienparameter löschen, die keine Bemaßung steuern, in keiner Formel vorkommen und nicht integriert sind? + +Dies kann in FamSlide nicht rückgängig gemacht werden - verwenden Sie bei Bedarf die Rückgängig-Funktion von Revit. + Kein aktives Revit-Dokument. + FamSlide funktioniert nur innerhalb des Familieneditors. +Öffnen Sie eine Familie zur Bearbeitung und starten Sie dieses Werkzeug erneut. + diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.en_us.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.en_us.xaml new file mode 100644 index 000000000..3f32e4a55 --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.en_us.xaml @@ -0,0 +1,35 @@ + + ⟲ Refresh Document + Re-scan the active family document for new or removed parameters. Also useful after switching to a different open family. + Shuffle parameter values. Randomizes every editable parameter within its current slider range. Use with caution - this cannot be undone from FamSlide itself. + Delete all unused parameters. Removes family parameters that are not driving a dimension, not involved in a formula, and are not built-in. Use with caution. + Show/hide editable parameters. Toggles visibility of parameters whose slider or checkbox can be changed directly. + Show/hide labels. Toggles the small tag pills shown under each parameter name. + Close + Close FamSlide + Value Parameters + BuiltIn Parameters + Yes/No Parameters + in use + uF + dF + built-in + instance + type + associated + (no family loaded) + No family document is active + Yes + No + Shuffle every editable parameter to a random value within its current slider range? + +This cannot be undone from FamSlide - use Revit's own Undo if needed. + Delete every family parameter that is not driving a dimension, not part of a formula, and not built-in? + +This cannot be undone from FamSlide - use Revit's own Undo if needed. + No active Revit document. + FamSlide only works inside the Family Editor. +Open a family for editing and run this tool again. + diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.es_es.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.es_es.xaml new file mode 100644 index 000000000..15b5dd8a0 --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.es_es.xaml @@ -0,0 +1,35 @@ + + ⟲ Actualizar documento + Vuelve a escanear el documento de familia activo en busca de parámetros nuevos o eliminados. También es útil tras cambiar a otra familia abierta. + Mezclar valores de parámetros. Asigna un valor aleatorio a cada parámetro editable dentro de su rango de control deslizante actual. Úsese con precaución - esto no se puede deshacer desde FamSlide. + Eliminar todos los parámetros no utilizados. Elimina los parámetros de familia que no controlan ninguna cota, no intervienen en ninguna fórmula y no son integrados. Úsese con precaución. + Mostrar/ocultar parámetros editables. Alterna la visibilidad de los parámetros cuyo control deslizante o casilla se puede modificar directamente. + Mostrar/ocultar etiquetas. Alterna las pequeñas etiquetas mostradas debajo de cada nombre de parámetro. + Cerrar + Cerrar FamSlide + Parámetros de valor + Parámetros integrados + Parámetros Sí/No + en uso + uF + dF + integrado + instancia + tipo + asociado + (ninguna familia cargada) + No hay ningún documento de familia activo + + No + ¿Mezclar todos los parámetros editables con un valor aleatorio dentro de su rango de control deslizante actual? + +Esto no se puede deshacer desde FamSlide - use la función Deshacer de Revit si es necesario. + ¿Eliminar todos los parámetros de familia que no controlan ninguna cota, no intervienen en ninguna fórmula y no son integrados? + +Esto no se puede deshacer desde FamSlide - use la función Deshacer de Revit si es necesario. + No hay ningún documento de Revit activo. + FamSlide solo funciona dentro del Editor de familias. +Abra una familia para editarla y ejecute esta herramienta de nuevo. + diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.fr_fr.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.fr_fr.xaml new file mode 100644 index 000000000..03993ca8d --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.fr_fr.xaml @@ -0,0 +1,35 @@ + + ⟲ Actualiser le document + Réanalyse le document de famille actif pour détecter les paramètres ajoutés ou supprimés. Utile aussi après avoir changé de famille ouverte. + Mélanger les valeurs des paramètres. Attribue une valeur aléatoire à chaque paramètre modifiable dans sa plage de curseur actuelle. À utiliser avec prudence - ceci ne peut pas être annulé depuis FamSlide. + Supprimer tous les paramètres inutilisés. Supprime les paramètres de famille qui ne pilotent aucune cote, ne sont impliqués dans aucune formule et ne sont pas intégrés. À utiliser avec prudence. + Afficher/masquer les paramètres modifiables. Bascule la visibilité des paramètres dont le curseur ou la case à cocher peut être modifié directement. + Afficher/masquer les étiquettes. Bascule les petites étiquettes affichées sous chaque nom de paramètre. + Fermer + Fermer FamSlide + Paramètres de valeur + Paramètres intégrés + Paramètres Oui/Non + utilisé + uF + dF + intégré + instance + type + associé + (aucune famille chargée) + Aucun document de famille actif + Oui + Non + Mélanger tous les paramètres modifiables avec une valeur aléatoire dans leur plage de curseur actuelle ? + +Ceci ne peut pas être annulé depuis FamSlide - utilisez si besoin la fonction Annuler de Revit. + Supprimer tous les paramètres de famille qui ne pilotent aucune cote, ne sont impliqués dans aucune formule et ne sont pas intégrés ? + +Ceci ne peut pas être annulé depuis FamSlide - utilisez si besoin la fonction Annuler de Revit. + Aucun document Revit actif. + FamSlide fonctionne uniquement dans l'éditeur de famille. +Ouvrez une famille en édition et relancez cet outil. + diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.ko.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.ko.xaml new file mode 100644 index 000000000..03d515916 --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.ko.xaml @@ -0,0 +1,35 @@ + + ⟲ 문서 새로고침 + 활성 패밀리 문서를 다시 스캔하여 추가되거나 제거된 매개변수를 확인합니다. 다른 열린 패밀리로 전환한 후에도 유용합니다. + 매개변수 값을 섞습니다. 편집 가능한 모든 매개변수를 현재 슬라이더 범위 내에서 무작위 값으로 설정합니다. 주의해서 사용하세요 - FamSlide에서는 취소할 수 없습니다. + 사용하지 않는 매개변수를 모두 삭제합니다. 치수를 구동하지 않고 수식에 포함되지 않으며 내장 매개변수가 아닌 패밀리 매개변수를 제거합니다. 주의해서 사용하세요. + 편집 가능한 매개변수 표시/숨김. 슬라이더나 체크박스를 직접 변경할 수 있는 매개변수의 표시 여부를 전환합니다. + 레이블 표시/숨김. 각 매개변수 이름 아래에 표시되는 작은 태그를 전환합니다. + 닫기 + FamSlide 닫기 + 값 매개변수 + 내장 매개변수 + 예/아니오 매개변수 + 사용 중 + uF + dF + 내장 + 인스턴스 + 타입 + 연결됨 + (패밀리가 로드되지 않음) + 활성화된 패밀리 문서가 없습니다 + + 아니오 + 편집 가능한 모든 매개변수를 현재 슬라이더 범위 내에서 무작위 값으로 섮으시겠습니까? + +FamSlide에서는 취소할 수 없습니다 - 필요하면 Revit 자체의 실행 취소를 사용하세요. + 치수를 구동하지 않고 수식의 일부가 아니며 내장 매개변수가 아닌 모든 패밀리 매개변수를 삭제하시겠습니까? + +FamSlide에서는 취소할 수 없습니다 - 필요하면 Revit 자체의 실행 취소를 사용하세요. + 활성 Revit 문서가 없습니다. + FamSlide는 패밀리 편집기 내에서만 작동합니다. +편집할 패밀리를 열고 이 도구를 다시 실행하세요. + diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.pt_br.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.pt_br.xaml new file mode 100644 index 000000000..6812137d4 --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.pt_br.xaml @@ -0,0 +1,35 @@ + + ⟲ Atualizar documento + Verifica novamente o documento de família ativo em busca de parâmetros novos ou removidos. Também útil após alternar para outra família aberta. + Embaralhar valores de parâmetros. Atribui um valor aleatório a cada parâmetro editável dentro do intervalo atual do controle deslizante. Use com cautela - isso não pode ser desfeito pelo FamSlide. + Excluir todos os parâmetros não utilizados. Remove parâmetros de família que não controlam nenhuma cota, não fazem parte de nenhuma fórmula e não são integrados. Use com cautela. + Mostrar/ocultar parâmetros editáveis. Alterna a visibilidade dos parâmetros cujo controle deslizante ou caixa de seleção pode ser alterado diretamente. + Mostrar/ocultar rótulos. Alterna as pequenas etiquetas exibidas abaixo do nome de cada parâmetro. + Fechar + Fechar FamSlide + Parâmetros de valor + Parâmetros integrados + Parâmetros Sim/Não + em uso + uF + dF + integrado + instância + tipo + associado + (nenhuma família carregada) + Nenhum documento de família ativo + Sim + Não + Embaralhar todos os parâmetros editáveis com um valor aleatório dentro do intervalo atual do controle deslizante? + +Isso não pode ser desfeito pelo FamSlide - use o Desfazer do próprio Revit, se necessário. + Excluir todos os parâmetros de família que não controlam nenhuma cota, não fazem parte de nenhuma fórmula e não são integrados? + +Isso não pode ser desfeito pelo FamSlide - use o Desfazer do próprio Revit, se necessário. + Nenhum documento do Revit ativo. + O FamSlide funciona apenas dentro do Editor de Famílias. +Abra uma família para edição e execute esta ferramenta novamente. + diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.ru.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.ru.xaml new file mode 100644 index 000000000..58e4c7c4a --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.ResourceDictionary.ru.xaml @@ -0,0 +1,35 @@ + + ⟲ Обновить документ + Повторно сканирует активный документ семейства на предмет новых или удалённых параметров. Также полезно при переключении на другое открытое семейство. + Перемешать значения параметров. Присваивает каждому редактируемому параметру случайное значение в пределах текущего диапазона ползунка. Используйте с осторожностью - это действие нельзя отменить из FamSlide. + Удалить все неиспользуемые параметры. Удаляет параметры семейства, которые не управляют размерами, не участвуют в формулах и не являются встроенными. Используйте с осторожностью. + Показать/скрыть редактируемые параметры. Переключает видимость параметров, значение которых можно изменить напрямую. + Показать/скрыть метки. Переключает отображение небольших меток под именем каждого параметра. + Закрыть + Закрыть FamSlide + Параметры значений + Встроенные параметры + Параметры Да/Нет + используется + uF + dF + встроенный + экземпляр + тип + связан + (семейство не загружено) + Нет активного документа семейства + Да + Нет + Перемешать все редактируемые параметры, присвоив им случайные значения в пределах текущего диапазона ползунка? + +Это действие нельзя отменить из FamSlide - при необходимости используйте отмену Revit. + Удалить все параметры семейства, которые не управляют размерами, не участвуют в формулах и не являются встроенными? + +Это действие нельзя отменить из FamSlide - при необходимости используйте отмену Revit. + Нет активного документа Revit. + FamSlide работает только в редакторе семейств. +Откройте семейство для редактирования и запустите инструмент снова. + diff --git a/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.xaml b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.xaml new file mode 100644 index 000000000..33f47588e --- /dev/null +++ b/extensions/pyRevitTools.extension/pyRevit.tab/Project.panel/ptools.stack/Family.pulldown/FamSlide.pushbutton/FamSlideWindow.xaml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +