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
