Skip to content

Where Data Lives

DAQS tries to store data where you would expect to find it in Revit.

If you know where to look in Revit, you know where to look in the JSON.

This page maps the Revit UI to the JSON structure.


The two Revit property panels

When you select an element in Revit, you see two places where data lives:

1. The Properties panel (instance data)

This is the panel on the left. It shows data that is specific to this placed element — the instance.

Examples: Mark, Level, Comments, Phase Created

In DAQS JSON → FamilyInstance.values

2. Type Properties (type data)

This opens when you click Edit Type. It shows data that is shared by all instances of the same type.

Examples: Assembly Code, Category, Fire Rating, Type Mark

In DAQS JSON → FamilySymbol.values


The most important rule

If you find it in the Properties panel → it is on the FamilyInstance. If you find it in Type Properties → it is on the FamilySymbol.

This single rule explains the majority of "why is my filter not finding anything?" questions.


Concrete example: a door

Take this door from the small dataset:

[
  {
    "id": 617464,
    "type": "FamilySymbol",
    "name": "1018x2387",
    "parent": { "id": 617348, "type": "Family" },
    "values": {
      "assemblyCode": "32.31",
      "category": { "name": "Doors" },
      "fireRating": null,
      "typeMark": "67"
    }
  },
  {
    "id": 616521,
    "type": "FamilyInstance",
    "name": "1018x2387",
    "parent": { "id": 617464, "type": "FamilySymbol" },
    "values": {
      "mark": "D-01",
      "levelId": 311,
      "comments": null
    }
  }
]
What you see in Revit Where in Revit Object in JSON Field
Mark Properties panel FamilyInstance values.mark
Level Properties panel FamilyInstance values.levelId
Comments (instance) Properties panel FamilyInstance values.comments
Assembly Code Type Properties FamilySymbol values.assemblyCode
Category Type Properties FamilySymbol values.category.name
Fire Rating Type Properties FamilySymbol values.fireRating
Type Mark Type Properties FamilySymbol values.typeMark

What about shared parameters?

Shared parameters appear in the Properties panel or Type Properties depending on their binding.

In the JSON they look like this — keyed by p_ followed by the parameter GUID:

"p_8fe8f5ce-4979-4679-b5e0-ccfb362b9059": {
  "id": 317596,
  "value": "EI30",
  "hasValue": true,
  "ref": "Parameter",
  "valueAsString": "EI30"
}

The binding determines which object carries this key:

  • Bound to instances → appears in FamilyInstance.values
  • Bound to types → appears in FamilySymbol.values

The parameter definition (name, GUID, spec) is a separate Parameter object:

{
  "id": 317596,
  "type": "Parameter",
  "values": {
    "guid": "8fe8f5ce-4979-4679-b5e0-ccfb362b9059",
    "name": "NLRS_C_brandwerendheid"
  }
}

Level, Room, and other references

Some instance values are references to other objects, not values in themselves.

Field in FamilyInstance What it references
values.levelId A Level object
values.roomId A Room object
values.hostId The host wall or floor
values.materialIds One or more Material objects

To access the level name, you must look up the Level object by its id:

{ "id": 311, "type": "Level", "values": { "name": "00 begane grond" } }

This is covered in detail in Filtering by Relationships.


What lives on the Family?

The Family object carries data about the family definition itself, not the type or the instance.

{
  "id": 617348,
  "type": "Family",
  "values": {
    "isEditable": true,
    "isInPlace": false,
    "familyPlacementType": "OneLevelBasedHosted"
  }
}

Useful for rules that only apply to editable (loadable) families:

$[type = "Family" and values.isEditable = true]

When data seems missing

If your filter returns nothing or null for a field, the first question is:

Am I looking on the right object type?

Check: 1. Open the element in Revit 2. Is the parameter in the Properties panel or in Type Properties? 3. Map to FamilyInstance or FamilySymbol accordingly 4. Check values.* on that object type

The most common mistake is looking for assemblyCode on a FamilyInstance. It does not exist there — it lives on the FamilySymbol.


Summary

Data type Revit location JSON object
Mark, Level, Comments Properties panel FamilyInstance.values
Assembly Code, Category, Fire Rating, Type Mark Type Properties FamilySymbol.values
Shared parameter (instance binding) Properties panel FamilyInstance.values.p_<guid>
Shared parameter (type binding) Type Properties FamilySymbol.values.p_<guid>
isEditable, placementType Family.values
Parameter name and GUID Parameter.values
Level name Level.values