BrickSchema.Net
1.3.28
See the version list below for details.
dotnet add package BrickSchema.Net --version 1.3.28
NuGet\Install-Package BrickSchema.Net -Version 1.3.28
<PackageReference Include="BrickSchema.Net" Version="1.3.28" />
paket add BrickSchema.Net --version 1.3.28
#r "nuget: BrickSchema.Net, 1.3.28"
// Install BrickSchema.Net as a Cake Addin #addin nuget:?package=BrickSchema.Net&version=1.3.28 // Install BrickSchema.Net as a Cake Tool #tool nuget:?package=BrickSchema.Net&version=1.3.28
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
- Installation and Setup
- Loading and Saving Schemas
- Working with Entities
- Searching Entities
- Updating Entities
- Adding Entities
- 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
- Download and add the BrickSchema.Net library to your project.
- 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 | Versions 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. |
-
net7.0
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.1)
- Newtonsoft.Json (>= 13.0.3)
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 | 245 | 7/14/2023 |
1.3.29 | 206 | 7/14/2023 |
1.3.28 | 164 | 7/14/2023 |
1.3.27 | 191 | 7/13/2023 |
1.3.26 | 198 | 6/19/2023 |
1.3.25 | 177 | 6/19/2023 |
1.3.24 | 190 | 6/15/2023 |
1.3.23 | 179 | 6/15/2023 |
1.3.22 | 189 | 6/15/2023 |
1.3.21 | 218 | 6/8/2023 |
1.3.20 | 339 | 6/8/2023 |
1.3.19 | 169 | 6/8/2023 |
1.3.18 | 245 | 6/7/2023 |
1.3.17 | 214 | 6/6/2023 |
1.3.16 | 211 | 6/2/2023 |
1.3.15 | 258 | 6/1/2023 |
1.3.14 | 218 | 6/1/2023 |
1.3.13 | 162 | 6/1/2023 |
1.3.12 | 154 | 6/1/2023 |
1.3.11 | 157 | 6/1/2023 |
1.3.10 | 157 | 6/1/2023 |
1.3.9 | 206 | 6/1/2023 |
1.3.8 | 205 | 6/1/2023 |
1.3.7 | 217 | 6/1/2023 |
1.3.6 | 198 | 5/31/2023 |
1.3.5 | 156 | 5/31/2023 |
1.3.4 | 173 | 5/31/2023 |
1.3.3 | 216 | 5/31/2023 |
1.3.2 | 193 | 5/31/2023 |
1.3.1 | 188 | 4/20/2023 |