If the CSV connector logs show this error:
Provision Failed - RefIds are shared with conflicting attributes or between different entities.
This can indicate that the CSV you uploaded:
- Did not have unique RefIds - either used the same RefId to refer to multiple entities, or used different RefIds for the same entity
- Assigned a single entity more than one value for an attribute that only expects one, such as
hasLocation
Let's review some common examples.
Thing.RefIds mapped to more than one Place
It's a rule in the Mapped Graph that Things can only have one location. If a Thing is mapped in the same row as a Space in your CSV file, the CSV connector assigns its location to that Space. If there's no Space, the Thing has its location assigned to the Floor. If there's no Space or Floor, the Thing is mapped to the Building.
For example, this will fail to provision because thing.RefId VAV01 is mapped to more than one Space:
| spaceRefId | spaceName | spaceCode | ... | thingRefId | thingName | thingExactType |
|---|---|---|---|---|---|---|
| ROOM101 | Room 101 | 101 | VAV01 | VAV-001 | Variable_Air_Volume_Box | |
| ROOM201 | Room 202 | 201 | VAV01 | VAV-001 | Variable_Air_Volume_Box |
If you need to map a Thing to a Zone which is also mapped to multiple Spaces, read more: How to create a Multi-Space Zone
Floor.RefIds identical across different Buildings
Floor.RefIds should be unique to each Floor and not re-used across Buildings within the CSV you're importing.
For example, floor.RefId "01" mapped to Buildings Innovation Hub, Research Center, and Operations Annex.
| buildingRefId | buildingName | buildingAddress | FloorRefId |
|---|---|---|---|
| 01 | Innovation Hub | ... | 01 ❌ |
| 02 | Research Center | ... | 01 ❌ |
| 03 | Operations Annex | ... | 01 ❌ |
To resolve this, each floor.RefId should be unique across each Building. There are many ways to do this, but here's just one example:
| buildingRefId | buildingName | buildingAddress | FloorRefId |
|---|---|---|---|
| 01 | Innovation Hub | ... | 01-01 ✅ |
| 02 | Research Center | ... | 02-01 ✅ |
| 03 | Operations Annex | ... | 03-01 ✅ |
This rule about conflicting RefIds applies across other entities, not just Floors. For example:
- Space RefIds can't be mapped across multiple Floors, Buildings
- Different Buildings can't share RefIds, and the same Building shouldn't have more than one RefId
Floor.RefIds re-used across different floorLevels
Likewise Floor.RefIds should not be repeated across floorLevels, as that's expected to be a separate Floor.
For example, floor.RefId "42-Roof" has attribute floor.Level 4 in one row and floor.Level 5 in another row.
| buildingRefId | buildingName | buildingAddress | FloorRefId | FloorLevel |
|---|---|---|---|---|
| 42 | Administration Building | ... | 42-Roof | 4 ❌ |
| 42 | Administration Building | ... | 42-Roof | 5 ❌ |
To resolve, either change the floor.Level values to match or use an alternative RefId for floor.Level 5.
| buildingRefId | buildingName | buildingAddress | FloorRefId | FloorLevel |
|---|---|---|---|---|
| 42 | Administration Building | ... | 42-Roof | 4 |
| 42 | Administration Building | ... | 42-Roof-Tower | 5 ✅ |
If you're not sure where RefIds have been duplicated in your CSV import, contact Mapped Support.