BDNS-plus

BDNS (Building Device Naming Syntax) ➕ equipment tagging. bdns-plus is a superset of BDNS: it extends BDNS to define a consistent and configurable approach to producing equipment references for Design Information (drawings, schedules, specifications). bdns-plus defines metadata required for every item of equipment. From the metadata bdns-plus will serialize a BDNS compliant, machine read-able tag (bdns_tag), as well an instance_tag and type_tag in a project configurable format that is optimised for improved human-legibility. bdns-plus is a python package, that can be used to define tags and build tags from object data.

To quickly grasps the projects goals refer to the examples.

The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in RFC 2119.

Definition of Terms

  • project - a construction project. It may be multi-stage and may have multiple buildings. The client will be the same and typically the project team will be the same.
  • volume - a zone / collection of adjacent space within a project. A single building project typically has 1 volume. A multi-building project each building will be a volume. Mixed use buildings can also be separated into multiple volumes defined by use-type, for example a residential block with a commercial lower floor(s) would be modelled as two volumes. External landscaping may be a separate volume. For the purposes of tagging, equipment can belong to one and only one volume.
  • level - a floor of a building. This MAY include mezzanine levels, see example.
  • type - a specific type of equipment, i.e. an item with a defined model number that can ultimately be purchased.
  • instance - a specific piece of equipment / asset within a project. Every asset is unique.

Required Properties and Tags

A definition of the properties required for equipment tagging for the digital identification of equipment for use in the design, construction and management of buildings.

Note

On some projects it may make the most sense to use vanilla BDNS throughout all design information and asset management systems. bdns-plus enables projects that require more flexibility in how a tag is displayed to also comply with BDNS.

In simplest terms, this standard defines that for each item of equipment, its type must be defined and its approximate location must be defined. The properties are used to: a) store valuable data about the item, b) create identification tags. By definition, the mimumum information that MUST be recorded is:

property name property type description
abbreviation Type string. uppercase, alphabetic, 2-6 chars, indicates equipment type
type Type +ve integer. refers to a specific equipment type used within a project
type_extra Type string. optional. extra type info that MAY be included with the type_tag. MUST NOT be used for uniqueness
volume Instance +ve integer. indicates the volume within a project the equipment is situated.
level Instance +ve integer. indicates the level within a project the equipment is situated
volume_level_instance Instance +ve integer. a numerical indentifyer for a specific piece of equipment within a volume and level
bdns_id Instance +ve integer. calculated value from other instance parameters. combined with abbreviation to create a bdns tag
instance_extra Instance string. optional. extra instance info that MAY be included with the instance_tag/bdns_tag. MUST NOT be used for uniqueness

Tagging properties are used to generate the following tags.

Tip

The way that type tags, instance tags and bdns tags are build SHOULD be the same for every type of equipment in a project. Users MAY, but SHOULD NOT choose to have different tagging methodolgies for specific types of equipment. When this is done they MUST define a custom tag definition and scope that is shared with the project team.

Type Tag

The type_tag is used to indicate the type of a given asset/piece of equipment on design information. For a given Type of equipment, the combination of the abbreviation and type MUST be unique. There MAY be many instances of eqipment of the same Type within a project and therefore many indentical type_tags. The type and abbreviation parameters MUST be combined without a delimiter. Extra information about the equipment type MAY be stored in the type_extra property.

Users are RECOMMENDED to use the default type tag definition provided by bdns_plus, see default example. Users MAY create custom tag definitions as described in tags. Where uses create custom tag definitions, these MUST be provided to the design team.

type_tag Example using bdns-plus defaults

  • abbreviation = LT, type = 1, type_extra = E, type_extra_delimiter = /
    • => unique_type_reference = LT1
    • => type_tag = LT1/E
  • abbreviation = RAD, type = 3, type_extra = None, type_extra_delimiter = /
    • => unique_type_reference = RAD3
    • => type_tag = RAD3

Instance Tag

The instance tag is used to indicate a specific instance of equipment within a project. For a given unique item of equipment in a project, the instance_tag MUST be unique. The instance_tag SHOULD indicate the equipment abbreviation, the volume, level and volume_level_instance, which when combined MUST be unique for every item of equipment in the project. The instance_tag MAY be the same as the bdns_tag.

Extra information about the equipment instance MAY be stored in the instance_extra property. Where there is only 1no project volume, the volume MAY be omitted from the instance_tag, see single-volume example.

instance_tag Example using bdns-plus defaults

  • abbreviation = LT, volume = 1, level = 0, volume_level_instance = 1, instance_extra = E
    • => instance_tag = LT/1/0/1_E

BDNS Tag

The combination of abbreviation and bdns_id MUST be unique for every item of equipment in a project. The volume, level and volume_level_instance SHOULD be combined to create bdns_id for each piece of equipment, this is the currently the only configuration offered by bdns-plus, see serialisation. The bdns_tag MUST take the format defined in the the BDNS Standard, and provided by bdns-plus as default.

bdns_tag Example using bdns-plus defaults

  • abbreviation = LT, volume = 1, level = 0, volume_level_instance = 1, instance_extra = E
    • => instance_tag = LT-1001_E