Model Service



Model Service


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

Create a new model in project


Resource: projects/<project_id>/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
  • EMPTY (Default, if none of above)
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 in project using project id.



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: projects/<project_id>/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


Optional query parameters

NameTypeDefault valueDescription
modifyonlybooleanfalse

When query parameter "modifyonly=true" is defined, the API function returns all divisions which user can modify




 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 disciplines 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 list of all disciplines 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/<division_id>/download 

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

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


Query parameters

NameMandatory/OptionalDescription
api-tokenoptionalIf 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
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 GET method for downloading the model where you can pass the "token" as a query 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 model using its id.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK