Skip to content

TH_Sammelbeschrifter v1.7 — WinForms-Parameterdialog und stabiler Dynamo-Player-Ablauf#1

Open
Thomash100 wants to merge 1 commit into
mainfrom
codex/refactor-script-for-stable-dynamo-player-execution
Open

TH_Sammelbeschrifter v1.7 — WinForms-Parameterdialog und stabiler Dynamo-Player-Ablauf#1
Thomash100 wants to merge 1 commit into
mainfrom
codex/refactor-script-for-stable-dynamo-player-execution

Conversation

@Thomash100
Copy link
Copy Markdown
Owner

Motivation

  • Das Dynamo-Python-Script soll im Dynamo Player stabil laufen und der bisherige Abbruch nach der Parameterwahl vermieden werden.
  • Nutzer müssen nach Auswahl mehrere Parameter in definierter Reihenfolge wählen können, bevor Punkte gepickt und Revit-Transaktionen gestartet werden.

Description

  • Neues Script TH_Sammelbeschrifter_Dynamo_v1_7.py hinzugefügt und in die neue Graph-Datei TH_Sammelbeschrifter_Dynamo_v1_7.dyn eingebettet; die Logik sammelt Parameter erst nach PickObjects und bietet die Schnittmenge der Parameter an.
  • Parameterdialog komplett auf Windows Forms umgestellt mit ComboBox (verfügbare Parameter), Button „Hinzufügen“, ListBox (gewählte Parameter), Buttons „Hoch/Runter/Entfernen“, Checkboxen für Parameternamen-Fallback und Farbübernahme, NumericUpDown für Mindestabstand sowie OK/Abbrechen; der Dialog liefert eine geordnete Parameterliste zurück.
  • Ablauf geändert: PickObjects → Parameterdialog → PickPoint für Punkt 1 und Punkt 2 → erst danach TransactionManager.Instance.EnsureInTransaction(doc) aufrufen; Platzierungslogik richtet Tags orthogonal (horizontal/vertical) aus und verwendet Abstand Punkt1→Punkt2 mit Mindestwert in mm.
  • Fehlerbehandlung überarbeitet: keine SystemExit-Abbrüche mehr; Fehler werden in result["errors"]/OUT geschrieben und zusätzlich per TaskDialog angezeigt; Fallback-Dialog (Microsoft.VisualBasic.InputBox) wenn WinForms nicht verfügbar.
  • Tag- und Textlogik: gewählte Parameter werden in Reihenfolge ausgelesen, mit Separator verbunden und in TH_Beschriftungstext geschrieben; Führungslinien lotrecht zur projizierten Elementkurve gesetzt; optionale Farbübernahme prüft Elementüberschreibung und Ansichtsfilter und setzt Overrides auf den Tag.
  • README TH_Sammelbeschrifter_README_v1_7.md beigefügt mit Ablauf und bekannten Einschränkungen.

Testing

  • python -m py_compile TH_Sammelbeschrifter_Dynamo_v1_7.py wurde ausgeführt und lieferte keinen Syntaxfehler.
  • Die neue Dynamo-Graph-Datei TH_Sammelbeschrifter_Dynamo_v1_7.dyn wurde erzeugt und das Python-Script programmgesteuert in die Python-Node eingebettet (JSON-Write verifiziert).

Codex Task

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b94d9bfd83

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +756 to +757
except Exception as ex:
return {"ok": False, "error": "System.Windows.Forms nicht verfügbar: {}".format(ex)}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use fallback dialog when WinForms cannot be loaded

show_options_dialog now returns {"ok": False} as soon as System.Windows.Forms is unavailable, and the caller treats that as a cancellation, so the run aborts in environments where WinForms/ShowDialog cannot be initialized. This is a functional regression because inputbox_fallback_options exists for exactly this case but is no longer called, which means Dynamo Player users lose the parameter-entry fallback instead of getting a recoverable prompt.

Useful? React with 👍 / 👎.

Comment on lines +943 to +945
tag = create_tag(tag_type, e, elem_mid, chosen_has_leader)
tag.TagHeadPosition = tag_head
if chosen_has_leader: set_perpendicular_leader(tag, Reference(e), tag_head, elem_mid)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Populate configured tag filter parameter on new tags

The tag creation loop no longer writes tag_filter_parameter/filter_source_parameter values onto each created tag, even though those inputs are still parsed and documented. In setups that rely on a tag parameter like TH_Filter_Systemtyp for view filters or tag styling, newly created tags will have missing filter data and therefore not match the expected filter behavior.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant