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