DYN-: Dyn 9663 fix missing data from node help data documentation#17208
Merged
jasonstratton merged 3 commits intoJul 14, 2026
Conversation
Ensures ZeroTouch vararg nodes like String.Concat and String.Join report input and output port types correctly in the documentation browser by resolving types through DSFunctionBase and mapping expanded variadic ports back to the params parameter. Added a regression test for DSVarArgFunction port type reporting, covering String.Concat, String.Join, and an added variadic input port.
Adds missing output port type metadata for Curve Mapper so the documentation browser can display double[] for both y-Values and x-Values outputs. Adds regression coverage for the two output ports
There was a problem hiding this comment.
See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-9663
Adds [OutPortTypes("string")] to StringInput so the documentation browser can show string in the output Data type column. Adds regression coverage for the String input node output port.
|
Contributor
There was a problem hiding this comment.
Pull request overview
Fixes missing input/output data types shown in the Documentation Browser by improving how port types are resolved for variadic zero-touch nodes and by adding missing OutPortTypes metadata for a couple of NodeModel-based nodes.
Changes:
- Update
PortModel.GetInputPortType()/GetOutPortType()to handleDSFunctionBase(includingDSVarArgFunction) and map extra variadic UI ports to the final underlying parameter type. - Add
OutPortTypesattributes toCurveMapperNodeModelandStringInputso their output port types appear in node documentation. - Add NUnit unit tests covering the same port-type resolution path used by the Documentation Browser.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| test/DynamoCoreTests/CoreTests.cs | Adds unit tests validating port-type resolution for DSVarArgFunction, CurveMapperNodeModel, and StringInput. |
| src/Libraries/CoreNodeModels/Input/BaseTypes.cs | Adds [OutPortTypes("string")] to StringInput so its output type appears in documentation. |
| src/Libraries/CoreNodeModels/CurveMapperNodeModel.cs | Adds [OutPortTypes("double[]", "double[]")] so both output ports report types in documentation. |
| src/DynamoCore/Graph/Nodes/PortModel.cs | Extends port-type resolution to DSFunctionBase and fixes variadic port indexing for DSVarArgFunction. |
Comment on lines
478
to
482
| var fd = ztNode.Controller.Definition; | ||
| string type; | ||
| var parameters = fd.Parameters.ToList(); | ||
| // In the case of a node for an instance method, the first port | ||
| // type is the declaring class type of the method itself. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Purpose
This PR addresses DYN-9663.
The changes in the code aim to ensure output port types are resolved correctly when building OpenNodeAnnotationEventArgs for the Documentation Browser. PortModel.GetInputPortType() and GetOutPortType() are the source of InputTypes / OutputTypes; when they returned null, the inputs/outputs tables showed blank type cells.
Before :
After : String.Concat and String.Join
Curve Mapper :
String :
changes :
Update PortModel.GetInputPortType() and GetOutPortType() to handle DSFunctionBase (not only DSFunction), so variadic zero-touch nodes such as String.Concat and String.Join are included.
For DSVarArgFunction nodes, map extra UI ports to the last parameter’s type when port index does not match the underlying FunctionDescriptor parameter list (e.g. multiple string inputs backed by a single string[] parameter).
Add [OutPortTypes("double[]", "double[]")] to CurveMapperNodeModel so both output ports report their data type in node documentation.
Add [OutPortTypes("string")] to the String input node so its output Data type appears in the Documentation Browser.
Add unit tests DSVarArgFunctionPortsReportInputAndOutputTypes, CurveMapperOutputsReportPortTypes, and StringInputOutputReportsPortType in CoreTests.cs to cover the same port-type resolution path used by the Documentation Browser.
Declarations
Check these if you believe they are true
Release Notes
Fixed missing input and output data types in the Documentation Browser for variadic library nodes such as String.Concat, and String.Join and Curve Mapper, and String input node
Reviewers
@zeusongit
@DynamoDS/eidos
FYIs
@dnenov
@johnpierson
@jnealb
@jasonstratton