DYN-10119: Add IValueSchemaProvider and typeIds to DefineData#17040
Open
kalunkuo wants to merge 5 commits intoDynamoDS:masterfrom
Open
DYN-10119: Add IValueSchemaProvider and typeIds to DefineData#17040kalunkuo wants to merge 5 commits intoDynamoDS:masterfrom
kalunkuo wants to merge 5 commits intoDynamoDS:masterfrom
Conversation
There was a problem hiding this comment.
See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-10119
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds a new public API surface to expose a stable, wire-format type identifier ($typeid) for DefineData nodes so external consumers (e.g., DynamoPlayer, DynamoMCP) can resolve canonical type identifiers without relying on display names.
Changes:
- Introduces
Dynamo.Graph.Nodes.IValueSchemaProviderwithValueTypeIdandIsListValue. - Extends
DSCore.Data.DataNodeDynamoTypewith aTypeIdfield populated for supported types and wires those IDs into the supported type list. - Implements
IValueSchemaProvideronCoreNodeModels.DefineDataand updatesDynamoCore/PublicAPI.Unshipped.txt.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| src/Libraries/CoreNodes/Data.cs | Adds TypeId to supported data types and populates wire-format $typeid strings. |
| src/Libraries/CoreNodeModels/DefineData.cs | Implements IValueSchemaProvider to expose typeId/list context from the dropdown selection. |
| src/DynamoCore/Graph/Nodes/IValueSchemaProvider.cs | Adds the new public interface for external consumers to query schema/type info. |
| src/DynamoCore/PublicAPI.Unshipped.txt | Registers the new public interface members for API analyzer compliance. |
RobertGlobant20
approved these changes
Apr 15, 2026
Contributor
RobertGlobant20
left a comment
There was a problem hiding this comment.
Just some minor comments LGTM,
| { | ||
| /// <inheritdoc/> | ||
| [JsonIgnore] | ||
| public string ValueTypeId |
Contributor
|
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
Expose wire-format
$typeidvalues fromDataNodeDynamoTypethrough a new publicIValueSchemaProviderinterface, so DynamoPlayer and DynamoMCP can programmatically resolve the canonical type identifier for DefineData nodes.Previously, external consumers (DynamoPlayer, MCP) had no programmatic way to get the
$typeidthat ProtoGeometry'sToJson()emits for a given DefineData type. They relied on display names (e.g. "Point") and maintained separate hardcoded lookup dictionaries, which drifted from actual wire values.Related PRs: DynamoPlayer (reads
ValueTypeIdvia reflection) and DynamoMCP (resolves typeIds to JSON Schemas for LLM consumers).Key changes:
IValueSchemaProviderinterface inDynamoCore/Graph/Nodes/withValueTypeId(string) andIsListValue(bool)DefineDataimplementsIValueSchemaProvider, returningDataNodeDynamoType.TypeIdviaValueTypeIdDataNodeDynamoTypegains aTypeIdproperty populated with the actual wire-format$typeidfor each supported type (e.g."autodesk.math:point3d-1.0.0"for Point,"autodesk.geometry.curve:circle-1.0.0"for Arc/Circle)StringifyJSONoutput — see Sample.json attached to the Jira ticketPublicAPI.Unshipped.txtupdated with the 3 new public API membersDeclarations
Check these if you believe they are true
Release Notes
Expose wire-format
$typeidvalues fromDataNodeDynamoTypethrough a new publicIValueSchemaProviderinterfaceReviewers
(FILL ME IN) Reviewer 1 (If possible, assign the Reviewer for the PR)
(FILL ME IN, optional) Any additional notes to reviewers or testers.
FYIs
(FILL ME IN, Optional) Names of anyone else you wish to be notified of