BrickSchema.Net 1.3.25

There is a newer version of this package available.
See the version list below for details.
dotnet add package BrickSchema.Net --version 1.3.25                
NuGet\Install-Package BrickSchema.Net -Version 1.3.25                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BrickSchema.Net" Version="1.3.25" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BrickSchema.Net --version 1.3.25                
#r "nuget: BrickSchema.Net, 1.3.25"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install BrickSchema.Net as a Cake Addin
#addin nuget:?package=BrickSchema.Net&version=1.3.25

// Install BrickSchema.Net as a Cake Tool
#tool nuget:?package=BrickSchema.Net&version=1.3.25                

BrickSchema.Net User Manual

The BrickSchema.Net is a C# library implimentation of Brick Schema. This user manual will guide you through the process of setting up, importing, and working with the Brick Schema.

For more information about Brick Schema, please visit https://brickschema.org/

As of 4/20/2023 - The library implemented 80% of Brick Schema v1.3.

Package Version

The package version format is a.b.x (1.3.1). a.b = Brick Schema version. https://brickschema.org/ontology x = package revision

Table of Contents

  1. Installation and Setup
  2. Loading and Saving Schemas
  3. Working with Entities
  4. Searching Entities
  5. Updating Entities
  6. Adding Entities
  7. Working with Entity

Installation and Setup

Prerequisites

To use the BrickSchema.Net, you need to have the following software installed:

  • .NET7
  • A compatible C# IDE, such as Visual Studio or Visual Studio Code

Installation

  1. Download and add the BrickSchema.Net library to your project.
  2. Import the required namespaces in your source code file:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BrickSchema.Net.Classes;
using BrickSchema.Net.Classes.Collection;
using BrickSchema.Net.Classes.Collection.Loop;
using BrickSchema.Net.Classes.Equipment;
using BrickSchema.Net.Classes.Location;
using BrickSchema.Net.Classes.Measureable;
using BrickSchema.Net.Classes.Point;

Loading and Saving Schemas

To load a Brick schema froma JSON-LD file:

var manager = new BrickSchemaManager();
manager.LoadSchema("path/to/your/brick-schema.jsonld");

To save a Brick schema to a JSON-LD file:

manager.SaveSchema("path/to/save/brick-schema.jsonld");

Working with Entities

Entities in the Brick schema are represented as objects of classes that inherit from the BrickEntity class. Each entity has an Id, Type, Properties, and Relationships.

To access the entities managed by the BrickSchemaManager:

var entities = manager.Entities;

Searching Entities

To search for entities in the Brick schema, use the SearchEntities method and provide a predicate function:

var entityToUpdate = new Sensor
{
    Id = "existing-entity-id",
    Type = "NewType",
    Properties = newProperties,
    Relationships = newRelationships,
};

bool success = manager.UpdateEntity(entityToUpdate);

Updating Entities

To update an existing entity in the Brick schema, use the UpdateEntity method:

var entityToUpdate = new Sensor
{
    Id = "existing-entity-id",
    Type = "NewType",
    Properties = newProperties,
    Relationships = newRelationships,
};

bool success = manager.UpdateEntity(entityToUpdate);

Adding Entities

To add a new entity to the Brick schema, use one of the AddEntity methods for the specific entity type:

// Add a new floor location entity
var floor = manager.AddLocationFloor();

// Add a HVAC AHU entity
var ahu = manager.AddEquipmentHVACAHU();

// Add a HVAC VAV entity
var vav = manager.AddEquipmentHVACTerminalUnitVAV();

// Add a new sensor point entity
var sensor = manager.AddPointSensor();

Working with Entity

// Add a new floor location entity
var floor = manager.AddLocationFloor();
//Add property relating to this entity
foor.AddProperty("Name", "Level 1");

// Add a HVAC AHU entity
var ahu = manager.AddEquipmentHVACAHU();
//Add property relating to this entity
ahu.AddProperty("Name", "AHU1");
//Add ahu to Level 1 floor location (relationship)
ahu.AddRelationshipLocationOf(floor.Id);

// Add a HVAC VAV entity
var vav = manager AddEquipmentHVACTerminalUnitVAV();
//Add property relating to this entity
vav.AddProperty("Name", "VAV1-1");
//Add vav to Level 1 floor locatio (relationship)
vav.AddRelationshipLocationOf(floor.Id);
//Add vav feed from AHU (relationship)
vav.AddRelationshipFedBy(ahu.Id);

// Add a new sensor point entity
var sensor = manager.AddPointSensor();
// Associate the point with VAV
sensor.AddRelationshipAssociatedWith(vav.Id);
// sensor is point of VAV
sensor.AddRelationshipPointOf(vav.Id);
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on BrickSchema.Net:

Package Downloads
LisaCore

CSharp dynamic runtime code execution

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.30 247 7/14/2023
1.3.29 208 7/14/2023
1.3.28 166 7/14/2023
1.3.27 192 7/13/2023
1.3.26 199 6/19/2023
1.3.25 179 6/19/2023
1.3.24 192 6/15/2023
1.3.23 181 6/15/2023
1.3.22 191 6/15/2023
1.3.21 220 6/8/2023
1.3.20 341 6/8/2023
1.3.19 171 6/8/2023
1.3.18 247 6/7/2023
1.3.17 216 6/6/2023
1.3.16 213 6/2/2023
1.3.15 260 6/1/2023
1.3.14 220 6/1/2023
1.3.13 164 6/1/2023
1.3.12 156 6/1/2023
1.3.11 158 6/1/2023
1.3.10 159 6/1/2023
1.3.9 208 6/1/2023
1.3.8 207 6/1/2023
1.3.7 219 6/1/2023
1.3.6 200 5/31/2023
1.3.5 158 5/31/2023
1.3.4 175 5/31/2023
1.3.3 218 5/31/2023
1.3.2 194 5/31/2023
1.3.1 190 4/20/2023