Hey @promontis welcome to the forum, feel free to Introduce yourself 🙆 if you’d like.
This is a very good question, and we should definitely clarify these bits in our docs as well, so thanks for asking.
I think the best way of explaining this is with an example of our main flows.
When sending from BIM software (eg Revit), Speckle attaches all geometry and metadata available.
When sending from non-BIM software (eg Rhino) Speckle gives you the possibility to “tag” geometric elements so that when received in BIM software native elements can be generated (eg walls, floors…).
This is currently done by attaching a so called “SpeckleSchema” that includes information on stuff like family, height etc.
See this conversation for more details on some proposed changes to this behavior:
Let us know if you have any more questions!