All model elements are defined inside Origam.Schema namespace. Every model element derives from ISchemaItem.
Model Hierarchy
The way how to get child elements of any model element or even a category of model elements is using the interface ISchemaItemFactory and its method public Type[] NewItemTypes.
So one way to see what elements can be created under the current element is to see NewItemTypes
In this case Service has an only possible child ServiceMethod.
In some more recent code NewItemTypes property is not overridden and in such a case either there are no child items available or there is another piece of code (typically living in an Init() method) that fills in ChildItemTypes collection like this:
In this case any data entity can have the following children:
Database Field
Virtual Field
Function Field
Aggregated Field
Lookup Field
Relationship
Parameter
Filter
Index
Row Level Security Filter
Row Level Security Rule
Conditional Formatting Rule
Root Model Elements
Every root model element lives inside ISchemaItemProvider.
Every provider has a property Group which denotes the group of providers. Currently we have the following provider groups: