BH.oM.Programming.INode¶
Interface common to all syntax nodes
Interface structure¶
Implemented interfaces and base types¶
The INode is inheriting from the following base type(s) and implements the following interfaces:
- BH.oM.Base.IObject
Classes implementing this interface¶
The following classes are implementing this interface:
- BH.oM.Programming.BlockNode
- BH.oM.Programming.ClusterNode
- BH.oM.Programming.ConstructorNode
- BH.oM.Programming.CustomObjectNode
- BH.oM.Programming.ExplodeNode
- BH.oM.Programming.GetPropertyNode
- BH.oM.Programming.InitialiserNode
- BH.oM.Programming.LibraryNode
- BH.oM.Programming.LoopNode
- BH.oM.Programming.MethodNode
- BH.oM.Programming.ParamNode
- BH.oM.Programming.SetPropertyNode
- BH.oM.Programming.TypeNode
Properties¶
Defining properties¶
The following properties are defined on the interface
Name | Type | Description | Quantity |
---|---|---|---|
Inputs | List<ReceiverParam> | - | - |
Outputs | List<DataParam> | - | - |
Description | string | - | - |
Name | string | - | - |
BHoM_Guid | Guid | - | - |
IsInline | bool | - | - |
IsDeclaration | bool | - | - |
Derived properties¶
The following properties are defined as extension methods in one of the BHoM_Engines
Name | Type | Description | Quantity | Engine |
---|---|---|---|---|
IDataTypePerParam | Dictionary<Guid, Type> | Collect the data type for each parameter in the input syntax node. | - | Programming_Engine |
IReturnType | TypeSyntax | Get the C# type syntax corresponding to the first output of a node. | - | CSharp_Engine |
Code and Schema¶
C# implementation¶
Assembly: Programming_oM.dll
The C# interface definition is available on github:
All history and changes of the class can be found by inspection the history.
JSON Schema implementation¶
The object is defined as a JSON schema. You can validate a JSON instance against this schema by reference. To do this, use the schema reference below in a validator like this one.
JSON Schema
{
"$ref" : "https://raw.githubusercontent.com/BHoM/BHoM_JSONSchema/develop/Programming_oM/INode.json"
}
The JSON Schema is available on github here: