Model Service
- Create a new model in project
- Get the whole model list present under different projects inside a team
- Get the list of existing models inside a project
- Get the model details
- Detect model change
- Get the list of disciplines from the model
- Update the model
- Download the model
- Delete the model
Model Service
A Model is basically a technical building plan which could be created or imported.
Create a new model in project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/divisions
Example: https://api-stage.bimplus.net/v2/bimplus/projects/743a24f9-baaa-41b9-90b3-91717238043c/divisions
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
|---|---|---|---|
| id | will be ignored | string(guid) | Id of the model/division |
name |
mandatory |
string |
Name of the model |
description |
optional |
string |
Short description of the model |
projectId |
will be ignored |
string (guid) |
Id of the project to which the model belongs |
| topologyId | optional | string (guid) | Id of the topology to which the model belongs |
| disciplines | optional | object | The discipline list of the model |
| status | will be ignored | string(enum) | The status of the imported file. It could be one of the following
|
| revisionObjects | will be ignored | JSON Object | The list of revisions |
| teamSlug | will be ignored | string | Slug of the team to which the model belongs |
| url | will be ignored | string | The link for downloading the model |
| fileType | will be ignored | string | Content-type of file |
| inputType | will be ignored | string | Type of file (eg: ifc, Allplan etc) |
| created | will be ignored | string(date) | Creation date of the model |
| createdby | will be ignored | JSON object | The user who created this model |
| changed | will be ignored | string(date) | Update date of the model |
| changedBy | will be ignored | JSON object | User who updated the model |
| size | will be ignored | int | size in bytes |
| sizeMB | will be ignored | string | size in MB |
| importFileName | will be ignored | string | The file name of the model |
| importFileSize | will be ignored | int | Size of the import file in bytes |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{
"name":"Model D",
"description":"Creating a model via API"
}
Status: 201 Created
{
"name": "Model D",
"description": "Creating a model via API",
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"topologyId": "0fb09e03-20fc-42d9-a60b-254803950519",
"disciplines": [
"0f106af0-a919-44c5-b211-15bd5ef620b6",
"33826b01-c267-4b25-9f8e-79ac2953c443",
"30114b52-bc05-47c1-80b5-c7d5485d5840",
"09e623d4-1e12-4a77-b358-ea1d0b28e4a7"
],
"url": "/bimplus/divisions/2e0ca9e9-dd11-48d0-bd31-5a65225fe28a/download",
"fileType": "Ifc",
"inputType": "UNKNOWN",
"created": "2015-11-06T09:34:45",
"createdby": {
"id": "71e0ac3b-fa49-e540-ac2f-8caff3dd72ed",
"email": "jayaraj.purushothaman@gmail.com"
},
"changed": "2015-11-06T09:39:04",
"changedby": {
"id": "71e0ac3b-fa49-e540-ac2f-8caff3dd72ed",
"email": "jayaraj.purushothaman@gmail.com"
},
"size": 7216128,
"sizeMB": "6,88",
"importFileName": "SMC Building.ifc",
"status": "DONE_REFRESHED",
"id": "2e0ca9e9-dd11-48d0-bd31-5a65225fe28a"
}
Get the whole model list present under different projects inside a team
URL: https://api-stage.bimplus.net/v2/<team_slug>/divisions
Example: https://api-stage.bimplus.net/v2/bimplus/divisions
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
[
{
"name": "Model A - Vogel",
"description": null,
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"topologyId": "fc4be8b1-bf85-4c6f-b9c2-bac6474ddb1d",
"teamSlug" : "my-company",
"url": "/my-company/divisions/d81494b9-9731-4d2e-8fbe-da62f5270182/download",
"fileType" : "Unknown",
"inputType" : "IFC_IMPORT",
"created": "2015-07-07T09:21:15",
"createdby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"changed": "2015-07-07T09:21:16",
"changedby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"size": 39216128,
"sizeMB": "37,4",
"importFileName": "Vogel_bim.ifczip",
"importFileSize": 12631230,
"id": "d81494b9-9731-4d2e-8fbe-da62f5270182"
},
{
"name": "Model B - house sketchup",
"description": null,
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"topologyId": "2d20d707-9c18-44c0-92f4-282948cd5cf5",
"id": "deec1913-2c6e-4580-a40f-7e1ad33a6300",
"teamSlug" : "my-company",
"url": "/my-company/divisions/e687b45b-d90d-4361-94ab-baf269588c0a/download",
"fileType" : "Unknown",
"inputType" : "SKP_IMPORT",
"created": "2015-07-06T09:21:15",
"createdby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"changed": "2015-07-06T09:22:16",
"changedby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"size": 21451776,
"sizeMB": "20,46",
"importFileName": "House.skp",
"importFileSize": 439882,
"id": "e687b45b-d90d-4361-94ab-baf269588c0a"
}
]
Get the list of existing models inside a project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/divisions
Optional query parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| modifyonly | boolean | false | When query parameter "modifyonly=true" is defined, the API function returns all divisions which user can modify |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
[
{
"name": "Model A - Vogel",
"description": null,
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"topologyId": "fc4be8b1-bf85-4c6f-b9c2-bac6474ddb1d",
"teamSlug" : "my-company",
"revisionObjects": [
{
"id": "b9cc9bb0-26fd-432e-b024-f7f41ba2c7d2",
"name": "First Revision",
"description": "First Revision",
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"divisionId": "d81494b9-9731-4d2e-8fbe-da62f5270182",
"revisionNr": 1,
"created": "2015-07-07T09:21:15",
"createdby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},,
"topologyId": "fc4be8b1-bf85-4c6f-b9c2-bac6474ddb1d",
"inputType": "IFC_IMPORT"
}
],
"url": "/my-company/divisions/d81494b9-9731-4d2e-8fbe-da62f5270182/download",
"fileType" : "Unknown",
"inputType" : "IFC_IMPORT",
"created": "2015-07-07T09:21:15",
"createdby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"changed": "2015-07-07T09:21:16",
"changedby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"size": 39216128,
"sizeMB": "37,4",
"importFileName": "Vogel_bim.ifczip",
"importFileSize": 12631230,
"id": "d81494b9-9731-4d2e-8fbe-da62f5270182"
},
{
"name": "Model B - house sketchup",
"description": null,
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"topologyId": "2d20d707-9c18-44c0-92f4-282948cd5cf5",
"id": "deec1913-2c6e-4580-a40f-7e1ad33a6300",
"teamSlug" : "my-company",
"revisionObjects": [
{
"id": "c86a33d9-6538-4c01-8e79-cb48839a7703",
"name": "Revision 1",
"description": "",
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"divisionId": "e687b45b-d90d-4361-94ab-baf269588c0a",
"revisionNr": 1,
"created": "2015-07-06T09:21:15",
"createdby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"topologyId": "2d20d707-9c18-44c0-92f4-282948cd5cf5",
"inputType": "SKP_IMPORT"
}
],
"url": "/my-company/divisions/e687b45b-d90d-4361-94ab-baf269588c0a/download",
"fileType" : "Unknown",
"inputType" : "SKP_IMPORT",
"created": "2015-07-06T09:21:15",
"createdby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"changed": "2015-07-06T09:22:16",
"changedby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"size": 21451776,
"sizeMB": "20,46",
"importFileName": "House.skp",
"importFileSize": 439882,
"id": "e687b45b-d90d-4361-94ab-baf269588c0a"
}
]
Get the model details
URL: https://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>
Example: https://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/e687b45b-d90d-4361-94ab-baf269588c0a
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{
"name": "Model A - Vogel",
"description": null,
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"topologyId": "fc4be8b1-bf85-4c6f-b9c2-bac6474ddb1d",
"disciplines": [
"0f106af0-a919-44c5-b211-15bd5ef620b6",
"33826b01-c267-4b25-9f8e-79ac2953c443",
"a330fde2-1a2f-48ed-a6e3-90b92965dca6"
],
"url": "/my-company/divisions/d81494b9-9731-4d2e-8fbe-da62f5270182/download",
"fileType" : "Unknown",
"inputType" : "IFC_IMPORT",
"created": "2015-07-07T09:21:15",
"createdby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"changed": "2015-07-07T09:21:16",
"changedby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"size": 39216128,
"sizeMB": "37,4",
"importFileName": "Vogel_bim.ifczip",
"importFileSize": 12631230,
"status" : "DONE",
"id": "d81494b9-9731-4d2e-8fbe-da62f5270182"
}
Detect model change
Resource: divisions/<division_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>
HEAD
This method checks if the model has changed or not, and returns model's current ETag.
In the request, include models ETag into http header "If-None-Match", and then the response will be :
a) 304 NotModified if current model's ETag is identical ( means model has not changed )
b) 200 OK if model has changed, and returns current models ETag as "ETag" header in the response.
The "If-None-Match" header is not mandatory. If not present, the response will always return 200 OK with current ETag.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json If-None-Macth: "f9efd399-4631-4a77-b40a-31fb099f42a4"
Status: 304 NotModified - if model not changed or Status: 200 OK - if model has changed, or "If-None-Match" header was not included in request
Etag: "f9efd399-4631-4a77-b40a-31fb099f42a4"
Get the list of disciplines from the model
URL: https://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>/disciplines
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
[
{
"category": "/1/",
"name": "ID_BuildingModel",
"ifcType": null,
"id": "0f106af0-a919-44c5-b211-15bd5ef620b6"
},
{
"category": "/2/",
"name": "ID_RoomModel",
"ifcType": null,
"id": "09e623d4-1e12-4a77-b358-ea1d0b28e4a7"
}
]
Update the model
URL: https://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>
Example: https://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/e687b45b-d90d-4361-94ab-baf269588c0a
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
|---|---|---|---|
| id | will be ignored | string(guid) | Id of the model/division |
name |
mandatory |
string |
Name of the model |
description |
optional |
string |
Short description of the model |
projectId |
will be ignored |
string (guid) |
Id of the project to which the model belongs |
| topologyId | optional | string (guid) | Id of the topology to which the model belongs |
| disciplines | optional | object | The discipline list of the model |
| status | will be ignored | string(enum) | The status of the imported file. It could be one of the following
|
| revisionObjects | will be ignored | JSON Object | The list of revisions |
| teamSlug | will be ignored | string | Slug of the team to which the model belongs |
| url | will be ignored | string | The link for downloading the model |
| fileType | will be ignored | string | Content-type of file |
| inputType | will be ignored | string | Type of file (eg: ifc, Allplan etc) |
| created | will be ignored | string(date) | Creation date of the model |
| createdby | will be ignored | JSON object | The user who created this model |
| changed | will be ignored | string(date) | Update date of the model |
| size | will be ignored | int | size in bytes |
| sizeMB | will be ignored | string | size in MB |
| importFileName | will be ignored | string | The file name of the model |
| importFileSize | will be ignored | int | Size of the import file in bytes |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{
"name":"Model D",
"description":"Updating the model D"
}
Status: 200 OK
{
"name": "Model D",
"description": "Updating the model D",
"projectId": "743a24f9-baaa-41b9-90b3-91717238043c",
"topologyId": "fc4be8b1-bf85-4c6f-b9c2-bac6474ddb1d",
"disciplines": [
"0f106af0-a919-44c5-b211-15bd5ef620b6",
"33826b01-c267-4b25-9f8e-79ac2953c443",
"a330fde2-1a2f-48ed-a6e3-90b92965dca6"
],
"url": "/my-company/divisions/d81494b9-9731-4d2e-8fbe-da62f5270182/download",
"fileType" : "Unknown",
"inputType" : "IFC_IMPORT",
"created": "2015-07-07T09:21:15",
"createdby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"changed": "2015-07-07T09:21:16",
"changedby": {
"id": "7c555899-5a5f-44d1-930e-284930678bed",
"email": "testuser@nemetschek.com"
},
"size": 39216128,
"sizeMB": "37,4",
"importFileName": "Vogel_bim.ifczip",
"importFileSize": 12631230,
"status" : "DONE",
"id": "d81494b9-9731-4d2e-8fbe-da62f5270182"
}
Download the model
URL: https://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>/download
Example: https://api-stage.bimplus.net/v2/bimplus/divisions/743a24f9-baaa-41b9-90b3-91717238043c/download
Query parameters
| Name | Mandatory/Optional | Description |
|---|---|---|
| api-token | optional | If the client cannot use the token in the header of the request, token can be specified in query parameters e.g. <team_slug>/divisions/<division_id>/download?api-token=9c1874a62c974dcfa75e0132c423a088 |
| revision | optional | Specify revision number, If set, the call will return the import file of the revision, otherwise it's the current import file. |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Returns file data. The response is of Content-Type: application/octet-stream.
Status: 200 OK
Delete the model
URL: https://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>
Example: https://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/e687b45b-d90d-4361-94ab-baf269588c0a
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK