Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DYN-6633: Definedata hierarchy #15154

Merged
merged 50 commits into from
May 15, 2024
Merged

Conversation

dnenov
Copy link
Collaborator

@dnenov dnenov commented Apr 18, 2024

Purpose

The 3rd PR of this node implementation, following #15022. The work in this PR contains a mostly finished node ready to be tested and where necessary improved upon.

The DefineData node will be used with the EngineNode to enable a much larger set of input/output types to be used when running 'graph-as-a-node'. (example below)

Usage with EngineNode

DynamoSandbox_IMhm0UqZXN

Current Interaction

DynamoSandbox_k5GuwfvzSc

Declarations

Check these if you believe they are true

  • The codebase is in a better state after this PR
  • Is documented according to the standards
  • The level of testing this PR includes is appropriate
  • User facing strings, if any, are extracted into *.resx files
  • All tests pass using the self-service CI.
  • Snapshot of UI changes, if any.
  • Changes to the API follow Semantic Versioning and are documented in the API Changes document.
  • This PR modifies some build requirements and the readme is updated
  • This PR contains no files larger than 50 MB

Release Notes

  • dynamo player
  • node interactions
  • UI
  • node resources
  • detailed documentation
  • tests

Reviewers

@saintentropy
@twastvedt

FYIs

@Amoursol
@mjkkirschner
@QilongTang

dnenov and others added 30 commits February 5, 2024 15:36
- starting with the model and the test suite
- now types are contained inside an enum
- added the basic primitives to the test structure, including lists checks
- reworked the node to start getting the customization going (and make sense of the whole thing)
- created hierarchical container capable of tracking type inheritance
- added all geometry tests
- finished all primitive date type tests
This reverts commit 1621855.
- completed tests checking inf inheritance works on individual and on list level
- added a few additional comments
- additional test checking if inheritance stops at the desired level (ie. `Cone` does not inherit from `Curve`)
- removed the Enum, replaced directly with Type
- removed dictionary in favor of list of datatypes
- renamed methods to better suit the specificity of the node functionality they were serving
- now returns the input as an output
- not doing much with the result of the validation though, except returning to the first value of the drop-down
- added functional IsAutoMode and IsList inputs to the Model
- removed the ViewModel
- added visual hierarchy to the view (ComboBox)
- removed Parent, introduced Level for indenting
- started throwing to test functionality, need to provide correct warning messages
- now correctly handles node when interacting with the toggle buttons (lock, list)
- added node icons
- added node to the layoutSpecs
- added dashed lines to represent nesting and visual hierarchy
- added localization exception and tooltip resources
- do not change dropdown if not in AutoMode
- added detailed description to IsAutoMode property
Add ability to set value from Player
- no warning in case the node 'is not used' (no input is provided)
- do not go back to 0 index if not in auto mode
- when in AutoMode, we assign 'select types' if null or wrong type is provided
- fixed resolution issues with icons
- fixed resources
- started adding node tests
dnenov added 11 commits March 20, 2024 18:06
- public static method of retrieving the list of datatypes replaced by an internal static property DataNodeDynamoTypeList
- IsSupportedDataNodeDynamoType now internal
- refactor
- added logic to handle lists when in AutoMode (guess the type, if possible)
- added Tests
- reintroduced 'Parent' to DataNodeDynamoType to speed up inheritance checks
- added updated error messages
- added first draft of detailed node documentation
- improved logic in handling inputData in AutoMode
- in case the node is in 'auto' mode, when user interacts with it, lock it - this is to prevent misunderstanding of what 'auto' mode does
- fix to DynamoPlayer behavior (from Craig)
- adjustment to interaction with the node under AutoMode - now locks the node
Copy link

github-actions bot commented Apr 18, 2024

UI Smoke Tests

Test: success. 2 passed, 0 failed.
TestComplete Test Result
Workflow Run: UI Smoke Tests
Check: UI Smoke Tests - net8.0

@twastvedt twastvedt changed the title Definedata hierarchy DYN-6633: Definedata hierarchy May 15, 2024
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-6633

@twastvedt twastvedt merged commit 4fe92b9 into DynamoDS:master May 15, 2024
25 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants