Pragmatic BIM Data Contract

To provide a simple, implementation-ready BIM data model for integration, querying, costing, and analysis workflows, this schema defines a pragmatic, graph-first LinkML structure that is IFC-aware and extensible across classification schemes.

URI: https://example.org/pragmatic-bim-data-contract

Name: pragmatic_bim_data_contract

Classes

Class Description
Entity Common base class for all schema entities
Classification Generic classification entry from any scheme (for example IFC, Uniclass, OmniClass, custom).
GeometryRepresentation Minimal geometry reference for an entity, separating representation from encoding format.
QuantityValue Minimal quantity record for costing and analysis
LocalizedText Localized text value for a specific language tag
MetadataEntry Generic metadata entry for storing IFC attributes, PropertySet fields, or project-specific key-value data.
Document Reference to an external document stored in a file system, DMS, object storage, or URL.
PerformanceProperty Normalized performance/property record derived from raw IFC PropertySet values with source traceability and strong typing through domain-specific subclasses.
Decision Decision record linked to an entity for workflow traceability and governance
Task Action/task record linked to an entity for implementation and follow-up workflows.
        FireProperty Normalized fire-related property
        AcousticProperty Normalized acoustic-related property
        ThermalProperty Normalized thermal-related property
        StructuralProperty Normalized structural-related property
        SecurityProperty Normalized security-related property
        MaterialProperty Normalized material-related property
RequirementAssessment Optional assessment record linking requirement intent, normalized property evidence, and compliance result for an entity.
        PhysicalElement Base class for physical elements that can be placed in built asset/level context.
                Separator Abstract base class for elements that separate spaces or zones
                        SeparatorWall Wall-based separating element
                        SeparatorSlab Slab-based separating element (for example floor/roof/base slab separators)
                ConnectionPhysical Physical connector providing functional connection between spaces (for example door, window, duct, pipe, cable).
                Boundary Physical element acting as a boundary treatment (for example covering)
                Equipment Endpoint or device element (for example terminal, unit, control device, sensor) located in a space and assigned to a system.
        VirtualEntity Abstract base class for non-physical, conceptual, or informational entities
                SpatialContext Context node used to represent project, perimeter, legal site, built asset, level, or zone.
                        ProjectContext Spatial context node constrained to project semantics
                        PerimeterContext Spatial context node constrained to perimeter semantics
                        LegalSiteContext Spatial context node constrained to legal site semantics
                        BuiltAssetContext Abstract spatial context for built assets such as buildings and civil structures.
                                BuildingContext Spatial context node constrained to building semantics
                                CivilStructureContext Spatial context node constrained to civil structure semantics
                        LevelContext Spatial context node constrained to level/storey semantics
                        ZoneContext Spatial context node constrained to zone semantics
                Space Spatial container used for occupancy, circulation, service, or analysis
                System Building service system grouping that serves spaces or zones
                ConnectionVirtual Logical or topological connection between spaces and/or physical elements
                AbstractCostRecord Abstract base for reusable cost record fields shared by atomic and aggregated cost records.
                        CostItem Cost record used for estimation and calculation, optionally linked to quantities.
                        CostAssembly Aggregated unit price assembled from multiple cost items
                Material Material definition that can be associated with one or more entities

Slots

Slot Description
applies_to_entities Entities this cost item applies to
assessed_property_key Canonical normalized property key used as evidence for requirement evaluation
assignee URI/CURIE for the responsible agent
boundary_type Classification of boundary element (e
bounded_by Physical elements that bound a space
bounded_space Space bounded by this boundary element
classification_code Classification code inside the scheme
classification_label Optional human-readable classification label
classification_scheme Name of the classification scheme (for example ifc, uniclass, omniclass, cust...
classification_source Source authority or dataset for this classification
classification_uri Optional URI/CURIE that identifies the classification concept in an external ...
classification_version Optional scheme/version identifier
classifications Classification entries from IFC and other schemes
component_cost_items Atomic cost items that are aggregated into this cost assembly
connection_physical_requirement_drivers Performance requirement drivers for this physical connection element
connection_physical_type Classification of physical connector type (for example door, window, duct, pi...
connection_virtual_requirement_drivers Main requirement drivers for this virtual connection
connection_virtual_type Classification of virtual connection semantics (for example structural_joint,...
connects_physical_elements Physical elements connected by this virtual connection (for example wall-wall...
connects_spaces Spaces connected by this virtual connection
contained_entities Generic containment for associated entities
context_type Classification of context entity (project, perimeter, legal_site, building, c...
cost_assemblies Aggregated unit prices associated with this entity
cost_category Cost category label kept intentionally open pending classification-backed mod...
cost_items Cost items associated with this entity
cost_quantity_type Quantity type used as basis for this cost calculation
cost_quantity_unit Unit of the cost quantity value
cost_quantity_value Quantity magnitude used as basis for this cost calculation
created_at Creation timestamp for this entity record
currency ISO 4217 currency code (for example EUR, USD)
decided_at Timestamp when the decision was made
decided_by URI/CURIE for the agent responsible for the decision
decision_status Decision status expressed as a URI/CURIE (for example proposed, accepted, rej...
decision_type Decision type expressed as a URI/CURIE from a controlled vocabulary
decisions Decision records associated with this entity
description Default description text
documents Linked documents associated with this entity
due_at Due timestamp for task completion
equipment_type Classification of equipment (for example HVAC, electrical, plumbing)
geometry_format Optional serialization/encoding format (for example ifc, gltf, wkt, geojson),...
geometry_reference URI/path/hash/pointer to geometry payload
geometry_representation Representation kind/dimension (for example body_3d, footprint_2d, point), ind...
geometry_representations Geometry references associated with the entity
group_members Zone members; may include spaces, separations, systems, etc
id Unique local identifier
ifc_global_id IFC GlobalId of the mapped entity
language_tag IETF BCP 47 language tag (for example en, de, pt-BR)
localized_descriptions Localized variants of description
localized_names Localized variants of name
mapping_version Mapping specification version used to derive the normalized property
material_category Material category label kept intentionally open pending classification-backed...
material_specification Material grade, specification, or product description
materials Material definitions associated with this entity
meaning_uri Optional semantic URI for linking the entity instance to an external ontology...
metadata Generic metadata container for IFC attributes/properties and project-specific...
metadata_key Metadata key, for example IfcWall
metadata_value Metadata value serialized as text
modified_at Last modification timestamp for this entity record
name Default display name
parent_building Parent building context reference
parent_legal_site Parent legal site context reference
parent_level Parent level/storey context reference
parent_perimeter Parent perimeter context reference
parent_project Parent project context reference
parent_space Parent space where the equipment is located
parent_system Parent systems that the equipment belongs to
parent_zone Parent zone context reference
performance_properties Normalized, strongly typed domain properties (fire/acoustic/thermal/structura...
property_key Canonical key inside the domain; constrained via subclass slot_usage to a dom...
property_unit Normalized unit where applicable (for example min, dB, W/m2K)
property_value_boolean Boolean value when property_value_type is boolean
property_value_number Numeric value when property_value_type is number
property_value_string String value when property_value_type is string
property_value_type Value type discriminator for normalized storage (for example string, number, ...
quantity_type Controlled quantity type
quantity_unit Unit of the quantity value
quantity_value Numeric quantity value
quantity_values Quantities associated with the entity
rationale Human-readable rationale that explains why the decision was made
related_decision Optional reference to a decision that informs or drives this task
requirement_driver Requirement driver key used in assessment context (for example fire, acoustic...
requirement_evidence Human-readable evidence or machine rule reference supporting the assessment
requirement_status Assessment result status (for example pass, fail, unknown)
requirement_target Target criterion or threshold used by the requirement rule
revision Integer revision counter for change tracking
separates_levels Level context nodes separated by this slab separator
separates_spaces Spaces separated by this separator element
separator_requirement_drivers Performance requirement drivers for this separator
separator_slab_type Classification of slab-based separator element (for example floor/roof/base s...
separator_wall_type Classification of wall-based separator element
serves_spaces Spaces served by this system
serves_zones Zone context nodes served by this system
source_property Original property name inside the source PropertySet (for example FireRating)
source_pset Original IFC PropertySet name (for example Pset_WallCommon)
source_value_raw Raw source value before normalization
space_type Classification of space (void, circulation, usable, service)
status Lifecycle or QA status
storage_link URI/URL/path to the stored document location
system_discipline Classification of system discipline (electrical, sanitary, ventilation, heati...
system_type Classification of system role (unit, network, terminal)
tags Optional free-form labels for filtering/grouping
task_notes Additional notes or implementation details for the task
task_status Task status URI/CURIE aligned with action status vocabularies
task_type Task type expressed as a URI/CURIE from a controlled vocabulary
tasks Tasks associated with this entity
text_value Localized text value
transport_medium Primary transport medium carried or enabled by the connector (for example hum...
unit_cost Unit cost for this cost item
zone_type Optional zone classification; intended for SpatialContext nodes where context...

Enumerations

Enumeration Description
AcousticPropertyKey Canonical acoustic-related keys derived from IFC PropertySets
BoundaryType
ConnectionPhysicalType Classification of physical connector elements that connect spaces
ConnectionRequirementDriver Main requirement drivers for connection element performance
ConnectionVirtualType Classification of virtual connection semantics using schema-internal meanings...
ContextType
EquipmentType
FirePropertyKey Canonical fire-related keys derived from IFC PropertySets
GeometryRepresentationType Classification of geometric representation dimension/style
MaterialPropertyKey Canonical material-related keys derived from IFC PropertySets and material me...
PerformancePropertyValueType Type discriminator for normalized performance property values
QuantityType
RequirementStatusType Assessment status for requirement evaluation records
SecurityPropertyKey Canonical security-related keys derived from IFC PropertySets
SeparatorRequirementDriver Main requirement drivers for separator performance
SeparatorSlabType Classification of slab-based separator elements
SeparatorWallType Classification of wall-based separator elements
SpaceType Classification of space semantics used by modeling and downstream conversion
StatusType Lifecycle or QA gate status used for model progression and approvals
StructuralPropertyKey Canonical structural-related keys derived from IFC PropertySets
SystemDiscipline Discipline of a building service system
SystemType Role of an MEP-related element or grouping in the service chain
ThermalPropertyKey Canonical thermal-related keys derived from IFC PropertySets
TransportMedium Primary medium transported through or enabled by a physical connector
ZoneType Classification of zone purpose and organizational intent

Types

Type Description
Boolean A binary (true or false) value
Curie a compact URI
Date a date (year, month and day) in an idealized calendar
DateOrDatetime Either a date or a datetime
Datetime The combination of a date and time
Decimal A real number with arbitrary precision that conforms to the xsd:decimal speci...
Double A real number that conforms to the xsd:double specification
Float A real number that conforms to the xsd:float specification
Integer An integer
Jsonpath A string encoding a JSON Path
Jsonpointer A string encoding a JSON Pointer
Ncname Prefix part of CURIE
Nodeidentifier A URI, CURIE or BNODE that represents a node in a model
Objectidentifier A URI or CURIE that represents an object in the model
Sparqlpath A string encoding a SPARQL Property Path
String A character string
Time A time object represents a (local) time of day, independent of any particular...
Uri a complete URI
Uriorcurie a URI or a CURIE

Subsets

Subset Description