Ability for defining NodeCategoryAttribute for ZeroTouch methods and overriding last category part #5956
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
In additiion of issue #5947
In some situations we need to make ZeroTouch nodes for addding additional funcionality for existing objects and categories.
For example:
Standard Revit Dynamo library has "Revit.View" category with nodes for working with views (Revit.Elements.View class).
And want to make ZeroTouch library with some additional nodes for working with views (for example - View.ViewName query node)
I can not make ViewName property becouse my class is not Revit.Elements.View.
I can make static method
public static string ViewName(Revit.Elements.View v)
but it will be assigned with "Actions" category, not "Query"So I would like to propose ability for overriding automatic categories last part assignment for ZeroTouch methods by standard NodeCategoryAttribute. This will get developers great flexibility for organasing nodes and making clear node structure for end-users.
One difference with using attribute for ZeroTouch methods is assigning only last category part (not full path). I mean "Query" - not "MyLib.View.Query"
Impact assessment
Testing strategy
Create ZeroTouch lib.
Create class and static method with NodeCategory("Query")
After compiling and loading dll in Dynamo you will see ViewName node in "Query" category:
Review staging
Reviewers
@lukechurch