Skip to main content

Goal

Understand how walls, doors, rooms, and other BIM elements appear in SpeckleSharp so you can filter, extract, and report on connector-published data.

What you will learn

How v3 stores BIM semantics in DataObject.properties, why there are no typed Wall classes, and where proxies fit in.

When to use this

Read this before writing filters or CSV exports on data from Revit, Rhino, ArchiCAD, or other connectors. If you only need a working script, start with Build your first model analysis tool and return here when property names are unclear.
  1. Receive with Receive2
  2. Treat elements as DataObject — check properties, not speckle_type, for BIM meaning
  3. Use Flatten() for model-wide queries
  4. Resolve proxies when you need levels, groups, or instances — see Working with Proxies

Complete example

Complete example

How it works

v3 object types

In Object Model v3, connectors emit generic containers: BIM semantics live in properties — category, family, type, level, fire rating, Revit parameters, and custom fields.

Deep nesting

Properties can nest several levels:
Example

No typed BIM classes

There is no Wall or Column class in SpeckleSharp for connector data. Use property checks:
Example

Proxies and hierarchy

Revit levels and groups often appear as proxies at the root, not as parent nodes in the tree. See Working with Proxies and Find objects by property.

Common mistakes

Next steps

Find objects by property

Traversal and filter recipes

Working with Proxies

Levels, groups, and instances

Export model data to CSV

Door and room schedules
Last modified on July 18, 2026