Skip to content

Chapter 4: Building Feature#

Welcome back! So far, we've learned about the crucial identifiers that help us link data: the Unique Property Reference Number (UPRN) for addressable locations and the Topographic Identifier (TOID) for geographic features like building outlines. We also saw how the Linked Identifiers Dataset acts as a bridge between them.

But what about the actual details of the building feature that the TOID identifies? We know that building has a certain TOID, but what is its shape? How tall is it? What's it made of? What's it used for?

This is where the concept of the Building Feature comes in. It's the dataset that provides the actual geometric and attribute information about the buildings we've been referencing.

What is a Building Feature?#

Imagine you have a map, and you see the outline of a building. The Building Feature is the digital representation of that specific building's outline, typically as a polygon shape (like the shape you'd see looking down from above). It's treated as a single unit representing the whole building.

This data comes from detailed mapping sources like Ordnance Survey's (OS) National Geographic Database (NGD). Think of it as the essential summary blueprint or outline for a building on the ground.

It's not just the shape, though! A Building Feature comes with extra information, called attributes, attached to it. These attributes describe key characteristics of the building itself.

Why is the Building Feature Important for BIM and Linking Data?#

Your BIM model is a detailed digital representation of a building. The Building Feature dataset provides the real-world context and foundational data for that building's location on the earth.

  1. Real-World Geometry: The polygon geometry of the Building Feature provides the authoritative footprint on the ground. You can align your detailed BIM model geometry to this real-world outline.
  2. Essential Attributes: Attributes like height, number of floors, construction material, and primary use are incredibly valuable. They provide real-world data to:
    • Validate information in your BIM model (Does the model height match the real-world height?)
    • Enrich your model with contextual data that might not be in the design files.
    • Help perform property-level analysis (e.g., filtering buildings by use or age).
  3. Linking Destination: The Building Feature dataset is often the goal when you start with a UPRN or a TOID. You use those identifiers to find the correct Building Feature and access its geometry and attributes.

It provides the detailed what and where about the building itself, which you can then link to the why (planning data via UPRN) or other whats (like utility connections near its geometry).

Key Information in a Building Feature#

A Building Feature contains two main types of information:

  1. Geometry: This is the spatial data defining the shape and location. For a Building Feature, it's usually a polygon representing the building's footprint on the ground.
  2. Attributes: These are non-spatial pieces of information about the building feature. Based on sources like the OS NGD – Building Feature Summary and OS NGD BuildingFeature bSDD Data Dictionary, common attributes include:
    • TOID (toid): The unique identifier for this specific feature (as discussed in Chapter 2). This is crucial for linking!
    • OSID (osid): Another unique identifier (a GUID) used within the OS NGD system.
    • Building Use (buildinguse): What is the building primarily used for? (e.g., Residential, Commercial, Industrial).
    • Height (height_absolutemax_m, etc.): Various height measurements (e.g., maximum height).
    • Number of Floors (numberoffloors): The count of occupiable floors.
    • Construction Material (constructionmaterial): What the building is primarily built from.
    • Building Age (buildingage_year): Year of construction if known.
    • Status (status): Is it active, under construction, derelict?

And many others! These attributes provide a rich description of the building tied directly to its location and shape.

How Do You "Use" a Building Feature?#

Typically, you use the Building Feature dataset by loading it into a GIS or data analysis tool and then selecting or querying the features you are interested in. The most common way to find a specific building feature is using its TOID or by its location (e.g., within a certain area, or near a specific UPRN's coordinates).

Here’s a common workflow, building on the concepts from previous chapters:

  1. Identify the Building: You might start with an address (UPRN) or a location.
  2. Find the TOID: Use the Linked Identifiers Dataset to find the Building Feature TOID associated with your UPRN or location.
  3. Load Building Feature Data: Load the Building Feature dataset (often provided in formats like GeoPackage or GeoJSON, which combine geometry and attributes).
  4. Query/Select by TOID: Find the building feature in the loaded data that matches the TOID you found in step 2.
  5. Access Geometry and Attributes: Once selected, you can view its polygon geometry and read its attributes (height, use, etc.).
  • Example Input: You have the TOID osgb1000001234567890 (perhaps found using the Linked Identifiers dataset for a specific UPRN).
  • Process: Load the Building Feature data. Filter the data to find the row/feature where the toid attribute is osgb1000001234567890.
  • Example Output: The tool presents the polygon shape of the building and lists its attributes: buildinguse: Residential, height_absolutemax_m: 10.5, numberoffloors: 3, etc.

The Data Structure#

The Building Feature data combines geometric information with tabular attributes. When you access this data, you're working with features that have both a shape and properties.

Conceptually, it looks something like this:

Property Name Description Data Type Example Value
toid Topographic Identifier (ID for the feature) String osgb1000001234567890
geometry The polygon shape (the footprint) Geometry POLYGON ((...))
buildinguse Functional building use String Residential
height_absolutemax_m Maximum building height Float 10.5
numberoffloors Number of floors Integer 3
... (other attributes) ... ... ...

Each row in the dataset represents one Building Feature (one building outline), with its unique TOID, its shape (geometry), and all its associated attributes.

Behind the Scenes: Getting Building Data#

Let's visualise the simple process of retrieving a Building Feature's details once you have its TOID:

sequenceDiagram
    participant YourSystem as Your BIM/GIS System
    participant OSBuildingData as OS Building Feature Data

    YourSystem->>YourSystem: I know the TOID of the building I want (e.g., osgb1000001234567890).
    YourSystem->>OSBuildingData: Query/Select feature where TOID = osgb1000001234567890.
    OSBuildingData-->>YourSystem: Find the matching feature record.
    OSBuildingData->>YourSystem: Return the Geometry (polygon) and all Attributes for that feature.
    YourSystem->>YourSystem: I now have the shape and details of the building.

This shows the dataset (OSBuildingData) acting as a database where you can look up a feature by its TOID and retrieve all the information linked to it.

Now, let's look at a very simple conceptual Python example using the geopandas library (which is built on pandas and can handle spatial data like polygons) to show how you might load this data and select a feature by its TOID.

First, you'd need the data, often in a file format like GeoPackage (.gpkg). Let's assume you have a file named building_features.gpkg.

# This is example conceptual Python code
import geopandas as gpd

# Load the building feature data from a GeoPackage file
print("Loading building feature data...")
buildings_gdf = gpd.read_file('building_features.gpkg')
print("Data loaded.")

# Display the first few rows to see columns like 'toid', 'geometry', 'buildinguse'
print("\nFirst 5 rows of the data:")
print(buildings_gdf[['toid', 'buildinguse', 'height_absolutemax_m', 'geometry']].head())

This snippet loads the data into a GeoDataFrame (like a pandas DataFrame but with a geometry column) and shows you some key columns, including the essential toid and geometry, and some attributes.

Now, let's say you have a specific TOID and want to get just that building's information:

# Suppose you have this TOID (e.g., from a Linked Identifiers lookup)
my_toid = 'osgb1000001234567890' # Replace with a real TOID from your data

# Filter the GeoDataFrame to find the row with this TOID
# .astype(buildings_gdf['toid'].dtype) handles potential type mismatches
my_building = buildings_gdf[buildings_gdf['toid'] == my_toid]

# Print the resulting GeoDataFrame (should be one row)
print(f"\nDetails for building with TOID {my_toid}:")
print(my_building)

The output would show the full row for the building with that specific TOID, including its geometry (which might look like a complex string representation of the polygon) and all its attributes. You've successfully used the TOID to retrieve the detailed information about that specific Building Feature!

This is the core process: use an identifier (like TOID, often found via UPRN) to select the geometric feature from the Building Feature dataset and then access its geometry and attributes.

Building Feature vs. Building Part#

While this chapter focuses on the Building Feature as the whole building unit, it's worth noting that OS NGD data also includes Building Part features. The Building Feature represents the combined footprint and aggregate attributes, while Building Parts represent components of a building, potentially providing more granular detail like height differences within a roof or different construction types within a structure. We'll explore Building Part in a later chapter. For now, think of the Building Feature as the simple, overall outline and summary.

Conclusion#

The Building Feature dataset provides the crucial real-world geometry (the footprint polygon) and key attributes (like use, height, age) for individual buildings in Great Britain. It's a fundamental layer for anchoring your BIM projects to the real world, enriching your models with authoritative data, and performing property-level analysis.

By understanding the Building Feature and how to access it using identifiers like the TOID (often found via the UPRN and Linked Identifiers dataset), you can connect your BIM environment to a wealth of external spatial information.

Now that we understand individual buildings, let's zoom out a bit and look at the next concept, which groups buildings and other features together based on land use or ownership: the Site Feature.


Next Chapter: Site Feature


Generated by AI Codebase Knowledge Builder