Hands-on Azure Digital Twins Read Online -

az dt twin create --adt-name adt-warehouse-<unique> --dtid "ZoneShipping" --dtmi "dtmi:handsOn:Zone;1" az dt twin create --adt-name adt-warehouse-<unique> --dtid "ShelfA" --dtmi "dtmi:handsOn:Shelf;1" Create sensors az dt twin create --adt-name adt-warehouse-<unique> --dtid "TempSensor-Rcv" --dtmi "dtmi:handsOn:Sensor;1" --properties '"sensorType":"temp"' Step 4: Build the Graph (Relationships) This is where the magic happens. Connect the twins.

# Create twins az dt twin create --adt-name adt-warehouse-<unique> \ --dtid "WarehouseMain" \ --dtmi "dtmi:handsOn:Warehouse;1" az dt twin create --adt-name adt-warehouse-<unique> --dtid "ZoneReceiving" --dtmi "dtmi:handsOn:Zone;1" hands-on azure digital twins read online

Now create the actual twins (instances): Think of it as a mini-Google Knowledge Graph

"@id": "dtmi:handsOn:Sensor;1", "@type": "Interface", "displayName": "Sensor", "contents": [ "@type": "Telemetry", "name": "value", "schema": "double" , "@type": "Property", "name": "sensorType", "schema": "@type": "Enum", "valueSchema": "string", "enumValues": [ "name": "Temperature", "enumValue": "temp" , "name": "Humidity", "enumValue": "humi" , "name": "Motion", "enumValue": "motion" ] ] Query 2: Traverse two hops (Warehouse → Zone

Your graph is now alive. Think of it as a mini-Google Knowledge Graph for your warehouse. Unlike SQL (tables) or NoSQL (documents), ADT uses a graph query language similar to SQL but with RELATED and IS_OF_MODEL . Query 1: Find all sensors in the Receiving Zone az dt twin query --adt-name adt-warehouse-<unique> \ --query-command "SELECT sensor FROM digitaltwins zone JOIN sensor RELATED zone.hasSensor WHERE zone.\$dtId = 'ZoneReceiving'" Result: Returns TempSensor-Rcv . Query 2: Traverse two hops (Warehouse → Zone → Sensor) az dt twin query --adt-name adt-warehouse-<unique> \ --query-command "SELECT sensor, zone FROM digitaltwins wh JOIN zone RELATED wh.contains JOIN sensor RELATED zone.hasSensor WHERE wh.\$dtId = 'WarehouseMain'" This is powerful. In a real app, this query would run in milliseconds, even across 100,000+ nodes. Step 6: Simulate Telemetry and Compute Changes Here’s where it gets truly hands-on. Azure Digital Twins itself does not ingest telemetry directly. Instead, you use Azure Functions or IoT Hub to route data in.

# Upload models az dt model create --adt-name adt-warehouse-<unique> \ --models models/*.json az dt model list --adt-name adt-warehouse-<unique> -o table