Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update classification types #65

Merged
merged 4 commits into from
Aug 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions Documentation/bSDD API.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@

**IMPORANT for developers using secured bSDD APIs** The URL "buildingsmartservices.onmicrosoft.com" will be changed to "authentication.buildingsmart.org" in the near future. Make sure you do not hard code this url in your code, make it an easy to update setting. You will receive a notification upfront when the change will take place.


The bSDD API is regularly updated. This means things may change. If there are breaking changes to an API a new version will be created. The 'old' version will be supported for, at least, 6 months after. Note that additions to an existing API usually don't mean a breaking change.

## bSDD test environment

The bSDD has a test environment for testing new developments of the bSDD. Although meant for internal use, developers wanting to use the bSDD APIs are welcome to use the test environment for development purposes. We do not have an SLA for that environment but we try to have an up time of the test environment of at least 95%.
If you're a domain owner and want to check your data or test the upload process, please use the official release.

## The bSDD API
The bSDD API offers methods to retrieve Classification and Property information for several Standards (also known as Domains), for example IFC and ETIM.
Expand All @@ -20,27 +23,29 @@ An example flow is:
A typical use-case is demonstrated in SketchUp. A video of the SketchUp use-case and bSDD plugin is availalbe on https://vimeo.com/446417661/ff8b6605d3

## API contracts and testing the API
You can get the API contract information at [bSDD API contract, official release](https://app.swaggerhub.com/apis/buildingSMART/Dictionaries/v1) or [bSDD API contract, prototype](https://test.bsdd.buildingsmart.org/swagger). This information is available without the need for you to log in. You can also test the API methods. Secured methods are marked with a lock. To access secured methods you need to log in via the UI by using the Authorize button:
You can get the API contract information at [bSDD API contract, official release](https://app.swaggerhub.com/apis/buildingSMART/Dictionaries/v1) or [bSDD API contract, test](https://test.bsdd.buildingsmart.org/swagger). This information is available without the need for you to log in. You can also test the API methods. Secured methods are marked with a lock. To access secured methods you need to log in via the UI by using the Authorize button:

![Swagger authorization](https://bsddprototype2020.blob.core.windows.net/public/images/swagger-authorize2.png)

Don’t forget to check the “read” scope!

## Using https://identifier.buildingsmart.org
!! For system to system communication using these identifier URIs is not recommended. !!
You can access the data of classification or property also directly via the URI of the classification or property. For example, you can navigate in the browser to https://identifier.buildingsmart.org/uri/buildingsmart/ifc-4.3/class/IfcWall and then you will see a visual representation of the data of that classification. If you would like the output in json format, then sending an "Accept" header with "application/json" will give you a result in json. The content of this json result differs from the html result!
You can access the data of classification or property also directly via the URI of the classification or property. For example, you can navigate in the browser to https://identifier.buildingsmart.org/uri/buildingsmart/ifc/4.3/class/IfcWall and then you will see a visual representation of the data of that classification. If you would like the output in json format, then sending an "Accept" header with "application/json" will give you a result in json. The content of this json result differs from the html result!

IMPORTANT: Do not use these identifier URIs for system to system communication! First of all, it introduces an extra 'hop' from server to server. Second, you do not have control over the version of the API it's using. The result may differ after a new release of bSDD has been published with the result from before the release.

## GraphQL
The data can also be accessed via GraphQL.
[GraphiQL playground](https://test.bsdd.buildingsmart.org/graphiql).
The url to send your GraphQL requests to:
- prototype: https://test.bsdd.buildingsmart.org/graphql
- official release: https://api.bsdd.buildingsmart.org/graphql
For accessing this URL no authentication is needed. There is also a secured API available:
- prototype: https://test.bsdd.buildingsmart.org/graphqls
- test: https://test.bsdd.buildingsmart.org/graphql

For using the official release the secured endpoint is (note the "s" at the end):
- official release: https://api.bsdd.buildingsmart.org/graphqls
For developers: the test environment also has a secured endpoint available:
- test: https://test.bsdd.buildingsmart.org/graphqls


You can find example code how to access a secured bSDD API in this repository. Contact us if you need assistance implementing accessing the secured API.

Expand Down
11 changes: 4 additions & 7 deletions Documentation/bSDD JSON import model.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ A `Classification` can be any (abstract) object (e.g. "IfcWall"), abstract conce
| ActivationDateUtc | DateTime | | | See [Date Time format](#datetime-format). |
| ClassificationProperties | List of ClassificationProperty | | | See section [ClassificationProperty](#classificationproperty) |
| ClassificationRelations | List of ClassificationRelation | | | See section [ClassificationRelation](#classificationrelation) |
| ClassificationType | Text | ✅* | | Must be one of: `Class` `ComposedProperty` `Domain` `GroupOfProperties` `ReferenceDocument` `AlternativeUse`. Read more about [classification types](#classification-types). If not specified, the `Class` type will be used by default. |
| ClassificationType | Text | ✅* | | Must be one of: `Class` `GroupOfProperties` `AlternativeUse`. Read more about [classification types](#classification-types). If not specified, the `Class` type will be used by default. We've deprecated types `ReferenceDocument`, `ComposedProperty` and `Domain`, cannot use these anymore for upload but may be present in API results. |
| Code | Text | ✅ | | Unique identification within the domain of the classification E.g. "ifc-00123-01". See section [Code format](#code-format) |
| ReferenceCode | Text | | | Reference code, can have domain specific usage. If null, then the value of `Code` is used to fill the field. To make `ReferenceCode` empty use empty string "". |
| CountriesOfUse | List of text | | | List of country ISO codes this `Classification` is being used. See reference list [countries](https://api.bsdd.buildingsmart.org//api/Country/v1). |
Expand Down Expand Up @@ -250,10 +250,10 @@ Each classification must have a specific type. Below is the explanation of what
* A Property Set as defined in ISO 16739-1 is a group of properties, but a group of properties is not necessarily a Property Set.
* There are five categories of possible groups of properties: class, domain, reference document, composed property, alternative use.
* A property can be member of several groups of properties. A property cannot be member of several Property Sets as defined in ISO 16739-1.
* `reference document` - publication that is consulted to find specific information, particularly in a technical or scientific domain.<sup>1<sup>3.18</sup></sup>
* [DEPRECATED] `reference document` - publication that is consulted to find specific information, particularly in a technical or scientific domain.<sup>1<sup>3.18</sup></sup>
* A reference document can be associated with any data present in a data dictionary.
* In bSDD we also have a [reference documents](https://api.bsdd.buildingsmart.org/api/ReferenceDocument/v1) list with most common standards that can be used as reference.
* `composed property` - category of group of properties corresponding to a feature needing multiple properties to be defined.<sup>1<sup>3.8</sup></sup>
* [DEPRECATED] `composed property` - category of group of properties corresponding to a feature needing multiple properties to be defined.<sup>1<sup>3.8</sup></sup>
* Using this category of group of properties requires to fill all the properties part of the composed property. There is no value attached to the group of properties.
* Example: To describe the characteristic "concrete facing quality" it is mandatory to describe 3 properties: concrete planarity, concrete hue, concrete texture.
* `alternative use` - type to be used if no other type fits the needs.<sup>1<sup>3.1</sup></sup>
Expand Down Expand Up @@ -301,7 +301,6 @@ For example, the [Height](https://search.bsdd.buildingsmart.org/uri/bs-agri/frui

`ConnectedPropertyCodes`...

`ComposedProperty`...

### 🚧 How to restrict property values?
`AllowedValues`...
Expand All @@ -322,11 +321,9 @@ For example, the [Height](https://search.bsdd.buildingsmart.org/uri/bs-agri/frui

`PhysicalQuantity`...

### 🚧 DynamicProperty vs ComposedProperty
### 🚧 DynamicProperty
`DynamicProperty`...

`ComposedProperty`...

---
<sup>[1] ISO 12006-3:2022 "Building construction — Organization of information about construction works — Part 3: Framework for object-oriented information"</sup>

Expand Down
2 changes: 2 additions & 0 deletions Documentation/bSDD and GraphQL.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ Test GraphQL secured endpoint: https://test.bsdd.buildingsmart.org/graphqls/

Production GraphQL secured endpoint: https://api.bsdd.buildingsmart.org/graphqls/

See document https://github.com/buildingSMART/bSDD/blob/master/Documentation/bSDD%20API.md for info how to access secured APIs. For accessing the secured GraphQL endpoint it is the same.

## Example data queries

-- get the list of available languages:
Expand Down