Model Service


 

Model Service


A Model is basically a technical building plan which could be created or imported. 

Create a new model
Resource: divisions 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/divisions

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/743a24f9-baaa-41b9-90b3-91717238043c/divisions

JSON Structure

Name

Mandatory / Optional

Type

Description

idwill be ignoredstring(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

topologyIdoptionalstring (guid)Id of the topology to which the model belongs
disciplinesoptionalobjectThe discipline list of the model
statuswill be ignoredstring(enum)

The status of the imported file. It could be one of the following

  • PREPARING (Uploading the file)
  • PENDING (Waiting in the queue after upload to be processed)
  • PROCESSING (Processing)
  • DONE (Processed)
  • DONE_REFRESHED (Processed & sent the notification)
  • FAILED
  • UNKNOWN
revisionObjectswill be ignoredJSON ObjectThe list of revisions
teamSlugwill be ignoredstringSlug of the team to which the model belongs
urlwill be ignoredstringThe link for downloading the model
fileTypewill be ignoredstringContent-type of file
inputTypewill be ignoredstringType of file (eg: ifc, Allplan etc)
createdwill be ignoredstring(date)Creation date of the model
createdbywill be ignoredJSON objectThe user who created this model
changedwill be ignoredstring(date)Update date of the model
changedBywill be ignoredJSON objectUser who updated the model
sizewill be ignoredintsize in bytes
sizeMBwill be ignoredstringsize in MB
importFileNamewill be ignoredstringThe file name of the model
importFileSizewill be ignoredintSize of the import file in bytes
 POST
 Creates a new model.
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
Resource: divisions 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/divisions

Examplehttps://api-stage.bimplus.net/v2/bimplus/divisions

 GET
 This API iterates through all the projects inside a team & gives back the whole model list. The response does not contain the lists of revisions objects.
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
Resource: divisions 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/divisions

Examplehttps://api-stage.bimplus.net/v2/bimplus-gmbh/projects/743a24f9-baaa-41b9-90b3-91717238043c/divisions

 GET
 Gets the list of existing models inside a project.
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
Resource: divisions/<division_id>

URLhttps://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>

Examplehttps://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/e687b45b-d90d-4361-94ab-baf269588c0a

 GET
 Get all the details of a model using its id.
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>

URLhttps://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 discipines from the model
 Resource: divisions/<division_id>/disciplines

URLhttps://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>/disciplines

Examplehttps://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/e687b45b-d90d-4361-94ab-baf269588c0a/disciplines

 GET
 Get all the details of a model using its id.
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
Resource: divisions/<division_id>

URLhttps://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>

Examplehttps://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/e687b45b-d90d-4361-94ab-baf269588c0a

JSON Structure

Name

Mandatory / Optional

Type

Description

idwill be ignoredstring(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

topologyIdoptionalstring (guid)Id of the topology to which the model belongs
disciplinesoptionalobjectThe discipline list of the model
statuswill be ignoredstring(enum)

The status of the imported file. It could be one of the following

  • PREPARING (Uploading the file)
  • PENDING (Waiting in the queue after upload to be processed)
  • PROCESSING (Processing)
  • DONE (Processed)
  • DONE_REFRESHED (Processed & sent the notification)
  • FAILED
  • UNKNOWN
revisionObjectswill be ignoredJSON ObjectThe list of revisions
teamSlugwill be ignoredstringSlug of the team to which the model belongs
urlwill be ignoredstringThe link for downloading the model
fileTypewill be ignoredstringContent-type of file
inputTypewill be ignoredstringType of file (eg: ifc, Allplan etc)
createdwill be ignoredstring(date)Creation date of the model
createdbywill be ignoredJSON objectThe user who created this model
changedwill be ignoredstring(date)Update date of the model
sizewill be ignoredintsize in bytes
sizeMBwill be ignoredstringsize in MB
importFileNamewill be ignoredstringThe file name of the model
importFileSizewill be ignoredintSize of the import file in bytes
 PUT
 Update specified model. Only name and description can be updated.
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
Resource: divisions 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>/download OR https://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>/download?api-token=token (If the client cannot use the token in the header request)

Examplehttps://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/743a24f9-baaa-41b9-90b3-91717238043c/download OR https://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/743a24f9-baaa-41b9-90b3-91717238043c/download?api-token=9c1874a62c974dcfa75e0132c423a088

 

Query parameters

NameMandatory/OptionalDescription
revisionoptionalSpecify revision number, If set, the call will return the import file of the revision, otherwise it's the current import file.
 GET
 Download the already uploaded model. There also exists a POST method for downloading the model where you have to pass the "token" as a form parameter.
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
Resource: divisions/<division_id> 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/divisions/<division_id>

Examplehttps://api-stage.bimplus.net/v2/bimplus-gmbh/divisions/e687b45b-d90d-4361-94ab-baf269588c0a

 DELETE
 Deletes a specified project.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Status: 200 OK