You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 334 Next »

This web page is under construction.

Help us improve the Bimplus API doc by providing your valuable comments. You can find the comment section at the bottom of the page.

Connect with Bimplus. Relation(workflow) between Bimplus portal and Bimplus api
Become a Bimplus compliant developer/partner. Register and authorize yourself to access the Bimplus resources. Relation between teams and projects
Create a team. Create an user. Assign the newly created user to the newly created team. Verify whether he/she is part of the team
Create, modify and access different resources/objects of the building model using the Bimplus api
Create a project, add some objects(walls, columns) and view it using the web viewer
Get the list of available projects and its properties
Add properties to the project
Add a thumbnail to the project
Project topology and object topology tree
Find the geometry of an object. Get to know the types of geometry available
Get the project layers and element types. Find the relation between them
Filter the building information using different filter criteria
Import an existing project in the form of IFC/SketchUp file
Create and assign issues to projects. Locate/visualize the issues in the project
Add attachments to the whole building as well as to the individual objects
Find out how many teams I am part of. Remove myself from some of the teams
Authentication token for multiple logins and cross client authentication using temporary token


Connect with Bimplus. Relation(workflow) between Bimplus portal and Bimplus api

US_Portal_Api

  • Bimplus portal is the first place of contact of the user/developer for using the Bimplus platform. It includes a shop where you can purchase different editions of Bimplus cloud platform. Here you can also find a few critical foundation apps like the Bimplus Explorer, Bimplus Viewer and Bimplus Problem Spotter. The portal takes care of the user registration(developer registration) as well.
  • The Bimplus API provides an interface for accessing the building information and models. It connects the building project information to a vast number of developers providing innovative Apps / applications that can operate on the building models and information.

The figure below describes the relation between the Bimplus portal and the API.


Become a Bimplus compliant developer/partner. Register and authorize yourself to access the Bimplus resources. Relation between teams and projects

US_Register_Compliance

  • Please register here for accessing the Bimplus resources and become a Bimplus compliant developer and a partner. You will receive an authentication token after the registration.
  • A Team is a tenant/company which work on the projects. The team has to be specified and setup through the bimplus portal as so called slugs to present a clean URL . The team slug will be used to know which tenant database to work on.
  • Using the authentication token and the team slug, you can start working with the building projects which you are a member of, using our Bimplus api.
  • Please find a quick start tutorial here .

Create a team. Create an user. Assign the newly created user to the newly created team. Verify whether he/she is part of the team

US_Team_User

The Bimplus provides a few user administration relevant services. They are:

  • Please use the Bimplus Team Management Service (POST https://api.bimplus.net/v2/teams) for creating a team. This will basically create a data storage for the team. See in the Request/Response tab where we have created the "best-company" team. Also, please note that the team slug "best-company" will be part of the subsequent requests for accessing the resources and performing the desired actions on them.
  • Verify whether the user has been added to the team by using the Bimplus Membership Management Service(GET https://api.bimplus.net/v2//members). In the response tab, you can see the user(test@bimplus.net) who is part of the "best-company" team.

Create, modify and access different resources/objects of the building model using the Bimplus api

US_Api_Intro

The project slug (which should be provided during the creation of a project) should be provided as part of the URL for accessing all the project relevant resources. This is also necessary to verify the user’s access rights on the project in an early stage of processing the API call (before any business data will be touched and any business logic will be executed)

These are the project relevant services available at the moment:

For further details see the Bimplus api reference


Create a project, add some objects(walls, columns) and view it using the web viewer

US_Create_Project

1. Create a new project

Use the Bimplus Project Service for creating a new project.

     POST
     Resource: projects 

    URLhttps://api.bimplus.net/v2/<team>/projects

    Examplehttps://api.bimplus.net/v2/bimplus/projects

    JSON Structure

    Name

    Mandatory / Optional

    Type

    Description

    name

    optional

    string

    Name of the project

    shortDescr

    optional

    string

    Short description of the project

    created

    will be ignored

    string (date)

    Creation date of the project

    Creates a new project.
    Headers
    Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
    Content-Type: application/json
    
    JSON
    {
    "name" : "Your Wonderful Model",
    "shortDescr" : "The best building model in the world"
    }
    
    Status
    Status: 201 Created
    
    JSON
    {
        "name": "Your Wonderful Model",
        "shortDescr": "The best building model in the world",
        "thumbnail": null,
        "created": "2013-07-11T11:02:11.6567346Z",
        "changed": "2013-07-11T11:02:11.6567346Z",
        "disciplines": null,
        "id": "0bc9e4b7-d679-43d7-86e3-0ded12fc0736"
    }
    
    2. Create a topology node

    A Topology node has to be created for adding the objects (Column, Wall). As a topology node is also an object, the Bimplus Object Service has to be used for creating the topology object. Please see the request tab. The id of the project is provided for the parent attribute of the json object(topology)

       POST
       Resource: objects 

      URLhttps://api.bimplus.net/v2/<team>/objects

      Examplehttps://api.bimplus.net/v2/bimplus/objects

      JSON Structure:

      Name

      Mandatory / Optional

      Type

      Description

      parent

      optional

      string (guid)

      The id of the parent to which the object can be associated

      type

      mandatory

      string

      Element type of the object

      attributes

      optional

      string

      Attributes of the object

      children

      optional

      Object

      Children of the object

       Creates a new object
      Headers
      Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
      Content-Type: application/json
      
      JSON
      {
          "parent": "0bc9e4b7-d679-43d7-86e3-0ded12fc0736",
          "type": "TopologyDivision",
          "attributes": {
              "element": {
                  "isparent": false,
                  "elementtyp": "e003e080-f21b-4f8a-8c4c-4c9c5026cf50",
                  "logparentid": "b65b2534-55fe-4fe7-806a-da5bd1bccf75",
                  "divisionid": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
                  "materialsurfaceid": "cdbd7fbc-0d02-4be5-adb3-04b7f0b2a638"
              },
              "general": {
                  "isobjectvalid": true,
      			"name": "First floor"
              }
          }
      }
      
      Status
      Status: 201 Created
      
      JSON
      {
          "id": "7f76a497-e322-4b78-b820-1ce85ebc39db",
          "type": "TopologyDivision",
          "attributes": {
              "element": {
                  "isparent": false,
                  "elementtyp": "e003e080-f21b-4f8a-8c4c-4c9c5026cf50",
                  "logparentid": "b65b2534-55fe-4fe7-806a-da5bd1bccf75",
                  "divisionid": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
                  "materialsurfaceid": "cdbd7fbc-0d02-4be5-adb3-04b7f0b2a638"
              },
              "general": {
                  "name": "First floor",
                  "isobjectvalid": true
              }
          }
      }
      
      3. Add a wall to the project

      Again we use the Bimplus Object Service for creating the wall object in the project. Please note that the wall is added to the topology node and not the project (i.e See the request tab. The id of the topology node is provided for the parent attribute of the json object(wall))

         POST
         Resource: objects 

        URLhttps://api.bimplus.net/v2/<team>/objects

        Examplehttps://api.bimplus.net/v2/bimplus/objects

        JSON Structure:

        Name

        Mandatory / Optional

        Type

        Description

        parent

        optional

        string (guid)

        The id of the parent to which the object can be associated

        type

        mandatory

        string

        Element type of the object

        attributes

        optional

        string

        Attributes of the object

        children

        optional

        Object

        Children of the object

         Creates a new object
        Headers
        Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
        Content-Type: application/json
        
        JSON
        {
            "parent" : "7f76a497-e322-4b78-b820-1ce85ebc39db",
            "type": "Wall",
            "attributes": {
                "element": {
                    "isparent": false,
                    "nr": 0,
                    "matrix": "AAAAAAAA8D8AAAAAAAAAgAAAAAAAAACAINejcP1YsEAAAAAAAAAAgAAAAAAAAPA/AAAAAAAAAIAK16Nw/fy2QAAAAAAAAACAAAAAAAAAAIAAAAAAAADwPwAArkfheoS/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8=",
                    "elementtyp": "10074eef-9418-4d64-9c6d-23932835a7f1",
                     "divisionid": "ac21b9a1-8853-4658-9fbf-0cf62340bd18"
                },
                "general": {
                    "name": "Brickwall",
                    "isobjectvalid": true
                },
                "quantity": {
                    "width": 115
                },
                "allplan": {
                    "allplan_guid": "08b8195a-a2ad-11e2-9993-002215ea7d6b",
                    "allplan_id": 2065507287,
                    "allplan_text": "<PP>Wall",
                    "dateofexport": "2013-05-01T09:32:13"
                },
                "geometry": {
                    "mesh": "{\"C\":4278255360,\"V\":[4450.01,115.01,0.01,3200.01,115.01,0.01,3200.01,0.01,0.01,4450.01,0.01,0.01,2315.01,0.01,0.01,2315.01,115.01,0.01,0.01,115.01,0.01,0.01,0.01,0.01,4450.01,115.01,2750.01,4450.01,0.01,2750.01,0.01,0.01,2750.01,0.01,115.01,2750.01,2315.01,115.01,2190.01,3200.01,115.01,2190.01,3200.01,0.01,2190.01,2315.01,0.01,2190.01],\"F\":[4,0,1,2,3,4,4,5,6,7,4,8,9,10,11,4,0,3,9,8,8,6,5,12,13,1,0,8,11,4,7,6,11,10,8,3,2,14,15,4,7,10,9,4,12,15,14,13,4,15,12,5,4,4,13,14,2,1]}"
                }
            }
        }
        
        Status
        Status: 201 Created
        
        JSON
        {
            "id": "921bc1f6-228a-4f79-937a-0251b60436b4",
            "type": "Wall",
            "attributes": {
                "element": {
                    "isparent": false,
                    "nr": 0,
                    "elementtyp": "10074eef-9418-4d64-9c6d-23932835a7f1",
                    "logparentid": "0bc9e4b7-d679-43d7-86e3-0ded12fc0736",
                    "divisionid": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
                    "materialsurfaceid": "cdbd7fbc-0d02-4be5-adb3-04b7f0b2a638"
                },
                "general": {
                    "name": "Brickwall",
                    "isobjectvalid": true
                },
                "allplan": {
                    "allplan_guid": "08b8195a-a2ad-11e2-9993-002215ea7d6b",
                    "allplan_id": 2065507287,
                    "allplan_text": "<PP>Wall",
                    "dateofexport": "2013-05-01T09:32:13"
                },
                "geometry": {
                    "mesh": "{\"C\":0,\"V\":[4450.01,115.01,0.01,3200.01,115.01,0.01,3200.01,0.01,0.01,4450.01,0.01,0.01,2315.01,0.01,0.01,2315.01,115.01,0.01,0.01,115.01,0.01,0.01,0.01,0.01,4450.01,115.01,2750.01,4450.01,0.01,2750.01,0.01,0.01,2750.01,0.01,115.01,2750.01,2315.01,115.01,2190.01,3200.01,115.01,2190.01,3200.01,0.01,2190.01,2315.01,0.01,2190.01],\"F\":[4,0,1,2,3,4,4,5,6,7,4,8,9,10,11,4,0,3,9,8,8,6,5,12,13,1,0,8,11,4,7,6,11,10,8,3,2,14,15,4,7,10,9,4,12,15,14,13,4,15,12,5,4,4,13,14,2,1]}"
                }
            }
        }
        
        4. Add a column to the project

        Again we use the Bimplus Object Service for creating the column object in the project. Please note that the wall is added to the topology node and not the project (i.e See the request tab. The id of the topology node is provided for the parent attribute of the json object(wall))

           POST
           Resource: objects 

          URLhttps://api.bimplus.net/v2/<team>/objects

          Examplehttps://api.bimplus.net/v2/bimplus/objects

          JSON Structure:

          Name

          Mandatory / Optional

          Type

          Description

          parent

          optional

          string (guid)

          The id of the parent to which the object can be associated

          type

          mandatory

          string

          Element type of the object

          attributes

          optional

          string

          Attributes of the object

          children

          optional

          Object

          Children of the object

           Creates a new object
          Headers
          Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
          Content-Type: application/json
          
          JSON
          {
              "parent" : "7f76a497-e322-4b78-b820-1ce85ebc39db",
              "type": "Column",
              "attributes": {
                  "element": {
                      "isparent": false,
                      "nr": 0,
                      "matrix": "AAAAAAAA8D8AAAAAAAAAgAAAAAAAAACAINejcP1YsEAAAAAAAAAAgAAAAAAAAPA/AAAAAAAAAIAK16Nw/fy2QAAAAAAAAACAAAAAAAAAAIAAAAAAAADwPwAArkfheoS/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8=",
                      "divisionid": "ac21b9a1-8853-4658-9fbf-0cf62340bd18"
                  },
                  "general": {
                      "name": "BrickColumn",
                      "isobjectvalid": true
                  },
                  "quantity": {
                      "width": 115,
          			"volume" : 24
                  },
                  "geometry": {
                      "mesh": "{\"C\":0,\"V\":[3843.438,-1048.958,-1565.0,3943.438,-1048.958,-1565.0,3943.438,-948.958,-1565.0,3843.438,-948.958,-1565.0,3843.438,-1048.958,635.0,3943.438,-1048.958,635.0,3943.438,-948.958,635.0,3843.438,-948.958,635.0],\"F\":[4,3,0,1,2,4,4,7,6,5,4,0,3,7,4,4,1,0,4,5,4,2,1,5,6,4,3,2,6,7]}"
                  }
              }
          }
          
          Status
          Status: 201 Created
          
          JSON
          {
              "id": "de5a8d7e-701f-42ff-9731-f32fb1fb767d",
              "type": "Column",
              "attributes": {
                  "element": {
                      "isparent": false,
                      "nr": 0,
                      "elementtyp": "2e308afe-d078-4c20-b53c-76b2da66d848",
                      "logparentid": "0bc9e4b7-d679-43d7-86e3-0ded12fc0736",
                      "divisionid": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
                      "materialsurfaceid": "cdbd7fbc-0d02-4be5-adb3-04b7f0b2a638"
                  },
                  "general": {
                      "name": "BrickColumn",
                      "isobjectvalid": true
                  },
                  "geometry": {
                      "mesh": "{\"C\":0,\"V\":[3843.438,-1048.958,-1565.0,3943.438,-1048.958,-1565.0,3943.438,-948.958,-1565.0,3843.438,-948.958,-1565.0,3843.438,-1048.958,635.0,3943.438,-1048.958,635.0,3943.438,-948.958,635.0,3843.438,-948.958,635.0],\"F\":[4,3,0,1,2,4,4,7,6,5,4,0,3,7,4,4,1,0,4,5,4,2,1,5,6,4,3,2,6,7]}"
                  }
              }
          }
          
          5. Verify whether the wall and column is added to the project by seeing the object topology

          For verifying whether the wall and the column is added to the project, we have to call GET https://api.bimplus.net/v2/nemetschek/objects//topology. Please note that the API call GET https://api.bimplus.net/v2/nemetschek/projects//topology will only give you its children (i.e topology) details. So, if your project is very big, you can first call GET https://api.bimplus.net/v2/nemetschek/projects//topology and get the topology id(i.e 7f76a497-e322-4b78-b820-1ce85ebc39db in our example). Using the topology id we can get the object(wall, column in our case) details using the call GET https://api.bimplus.net/v2/nemetschek/objects/7f76a497-e322-4b78-b820-1ce85ebc39db/topology.

             GET
             Resource: objects/<object_id>/topology

            URLhttps://api.bimplus.net/v2/<team>/objects/<object_id>/topology

            Example: {nolink:https://api.bimplus.net/v2/bimplus/objects/0bc9e4b7-d679-43d7-86e3-0ded12fc0736/topology

             Get all the project properties of a project using its id.
            Headers
            Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
            Content-Type: application/json
            
            Status
            Status: 200 OK
            
            JSON
            {
                "parent": null,
                "name": "Your Wonderful Model",
                "type": "ID_Project",
                "children": [
                    {
                        "parent": "0bc9e4b7-d679-43d7-86e3-0ded12fc0736",
                        "name": "First floor",
                        "type": "ID_TopologyDivision",
                        "children": [
                            {
                                "parent": "7f76a497-e322-4b78-b820-1ce85ebc39db",
                                "name": "Brickwall",
                                "type": "ID_ArchWall",
                                "children": [],
                                "id": "921bc1f6-228a-4f79-937a-0251b60436b4"
                            },
                            {
                                "parent": "7f76a497-e322-4b78-b820-1ce85ebc39db",
                                "name": "BrickColumn",
                                "type": "ID_ArchColumn",
                                "children": [],
                                "id": "de5a8d7e-701f-42ff-9731-f32fb1fb767d"
                            }
                        ],
                        "id": "7f76a497-e322-4b78-b820-1ce85ebc39db"
                    }
                ],
                "id": "0bc9e4b7-d679-43d7-86e3-0ded12fc0736"
            }
            
            6. See your result visually by using the web viewer.


            Get the list of available projects and its properties

            US_Project_List

            • This API call(GET https://api.bimplus.net/v2//projects) should retrieve the list of projects available to the team. In this call, only a few properties of the projects will be visible.
            • Using the project id got from the previous call, the full property list can be accessed using this API call(GET https://api.bimplus.net/v2//projects/)

            Add a thumbnail to the project

            US_Thumbnail

            • Thumbnail can be added to a project by using the Bimplus Project Service(POST https://api.bimplus.net/v2//projects//thumbnail). There is also a service available for downloading the thumbnail.

            Thumbnail API call:

            Web Viewer:

            • Please, note that there is a seperate attachment service available for uploading attachments other than thumbnail.

            Add properties to the project

            US_AddProperties

            • The project can be updated with the necessary attributes. The list of available Bimplus attributes can be seen here
            • Update the project with the project properties
               PUT
               Resource: projects/<project_id>

              URLhttps://api.bimplus.net/v2/<team>/projects/<project_id>

              Examplehttps://api.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e

              JSON Structure

              Name

              Mandatory / Optional

              Type

              Description

              name

              optional

              string

              Name of the project

              shortDescr

              optional

              string

              Short description of the project

              created

              will be ignored

              string (date)

              Creation date of the project

              changed

              will be ignored

              string (date)

              Changed date of the project

               Update or replace a specified existing project with a new one.
              Headers
              Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
              Content-Type: application/json
              
              JSON
              {
                  "properties": {
                      "MainFloorArea": "456m²",
                      "Architect": {
                          "name": "NemetschekTech.GmbH",
                          "phone1": "089/12793-1115",
                          "phone2": "0171/71384483",
                          "email": "MyName@Nemetschek.com",
                          "city": "Munich",
                          "zip": "81829",
                          "street": "Konrad-Zuse-Platz1"
                      },
                      "Customer": {
                          "name": "Bimplus customer",
                          "phone1": "001-201-1279345",
                          "email": "MyName@Nemetschek.com",
                          "city": "New Jersy",
                          "zip": "08201"
                      }
                  }
              }
              
              Status
              Status: 200 OK
              

              Error rendering macro 'deck'

              java.lang.NullPointerException

               

              • See the updated project properties
               

              GET

               
               

              Resource: projects/<project_id>

              URLhttps://api.bimplus.net/v2/<team>/projects/<project_id>

              Examplehttps://api.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2

               
               

              Get all the project properties of a project using its id.

               
               
              Headers
              Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
              Content-Type: application/json
              
               
               
              Status
              Status: 200 OK
              
              JSON
              {
                  "name": "Your Awesome Building",
                  "shortDescr": "The example project",
                  "thumbnail": "/nemetschek/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/thumbnail/download",
                  "created": "0001-01-01T00:00:00",
                  "changed": "0001-01-01T00:00:00",
                  "disciplines": [
                      {
                          "id": "0f106af0-a919-44c5-b211-15bd5ef620b6",
                          "name": "ID_BuildingModel",
                          "divisionId": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
                          "divisionName": null,
                          "revisions": []
                      }
                  ],
                  "properties": {
                      "mainfloorarea": "456m²",
                      "architect": {
                          "name": "NemetschekTech.GmbH",
                          "street": "Konrad-Zuse-Platz1",
                          "phone1": "089/12793-1115",
                          "phone2": "0171/71384483",
                          "email": "MyName@Nemetschek.com",
                          "zip": "81829",
                          "city": "Munich"
                      },
                      "customer": {
                          "name": "Bimplus customer",
                          "phone1": "001-201-1279345",
                          "email": "MyName@Nemetschek.com",
                          "zip": "08201",
                          "city": "New Jersy"
                      }
                  },
                  "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
              }
              
               

              Error rendering macro 'deck'

              java.lang.NullPointerException


              Project topology and object topology tree

              US_Topology

              Topology is a hierarchical tree representing all its child nodes. A topology tree consist of components which can have a graphical representation(objects or elements) or components which does not have a graphical representation(nodes). A topology tree can be obtained both on the project as well as on the object level.

              • Please use the Bimplus Project Service for obtaining/filtering the project topology tree. This will yield the topology nodes filtered till the sub-project level.
              Project Topology Tree (GET api.bimplus.net/v2/<team>/projects/<project_id>/topology)
              {
              "parent": null,
              "name": null,
              "type": "Project",
              "children": \[{
                          "parent": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
                          "name": null,
                          "type": "ID_TopologyDivision",
                          "children": [],
                          "id": "195db084-3715-4ebc-b164-3ee47a495b2e"
                      }
              \],
              "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
              }
              
              Project Tree (GET api.bimplus.net/v2/<team>/projects/<project_id>)
              {
              "name": "Your Awesome Building",
              "shortDescr": "Updating the example project",
              "created": "0001-01-01T00:00:00",
              "changed": "0001-01-01T00:00:00",
              "disciplines": \[{
                          "id": "0f106af0-a919-44c5-b211-15bd5ef620b6",
                          "name": "ID_BuildingModel",
                          "divisionId": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
                          "divisionName": null,
                          "revisions": []
                      }
              \],
              "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
              }
              
              • Please use the Bimplus Object Service for obtaining/filtering the object topology tree. This will yield the topology nodes with all the properties, attributes, geometry and children.
              Object Topology Tree (GET api.bimplus.net/v2/<team>/objects/<object_id>/topology)
              {
                  "parent": null,
                  "name": "Updated_Brickwall",
                  "type": "ID_ArchWall",
                  "children": [],
                  "id": "7cf910cb-e357-43f6-aa3a-b45c26380f75"
              }
              
              Object Tree (GET api.bimplus.net/v2/<team>/objects/<object_id>)
              {
              "id": "7cf910cb-e357-43f6-aa3a-b45c26380f75",
              "type": "Wall",
              "attributes": {
              "element": {
                          "isparent": true,
                          "nr": 0,
                          "matrix": "AAAAAAAA8D8AAAAAAAAAgAAAAAAAAACAINejcP1YsEAAAAAAAAAAgAAAAAAAAPA/AAAAAAAAAIAK16Nw/fy
                                     2QAAAAAAAAACAAAAAAAAAAIAAAAAAAADwPwAArkfheoS/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8=",
                          "elementtyp": "10074eef-9418-4d64-9c6d-23932835a7f1",
                          "logparentid": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
                          "divisionid": "ac21b9a1-8853-4658-9fbf-0cf62340bd18"
                      },
              "general": {
                          "name": "Updated_Brickwall",
                          "isobjectvalid": true
                      },
              "allplan": {
                          "allplan_guid": "08b8195a-a2ad-11e2-9993-002215ea7d6b",
                          "allplan_id": 2065507287,
                          "allplan_text": "<PP>Wall",
                          "dateofexport": "2013-05-01T09:32:13"
                      },
              "geometry": {
              "mesh": "{\"C\":0,\"V\":[4450.01,115.01,0.01,3200.01,115.01,0.01,3200.01,0.01,0.01,4450.01,0.01,0.01,2315.01,
                        0.01,0.01,2315.01,115.01,0.01,0.01,115.01,0.01,0.01,0.01,0.01,4450.01,115.01,2750.01,4450.01,0.01,
                        2750.01,0.01,0.01,2750.01,0.01,115.01,2750.01,2315.01,115.01,2190.01,3200.01,115.01,2190.01,3200.01,
                        0.01,2190.01,2315.01,0.01,2190.01],\"F\":[4,0,1,2,3,4,4,5,6,7,4,8,9,10,11,4,0,3,9,8,8,6,5,12,13,1,0,
                        8,11,4,7,6,11,10,8,3,2,14,15,4,7,10,9,4,12,15,14,13,4,15,12,5,4,4,13,14,2,1]}"
              }
              }
              }
              
              • A project is basically an object. For a better understanding, here the same project is represented using the different API calls.
              Project Tree (GET api.bimplus.net/v2/nemetschek/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e)
              {
                  "name": "Your Awesome Building",
                  "shortDescr": "Updating the example project",
                  "thumbnail": "/nemetschek/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/thumbnail/download",
                  "created": "0001-01-01T00:00:00",
                  "changed": "0001-01-01T00:00:00",
                  "disciplines": [
                      {
                          "id": "0f106af0-a919-44c5-b211-15bd5ef620b6",
                          "name": "ID_BuildingModel",
                          "divisionId": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
                          "divisionName": null,
                          "revisions": []
                      }
                  ],
                  "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
              }
              
              Project Topology Tree (GET api.bimplus.net/v2/nemetschek/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/topology)
              {
                  "parent": null,
                  "name": "Your Awesome Building",
                  "type": "ID_Project",
                  "children": [
                      {
                          "parent": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
                          "name": "Your Awesome Building",
                          "type": "ID_TopologyDivision",
                          "children": [],
                          "id": "c1c6c2bc-f38e-4c01-ae5a-864baaa0b2d0"
                      }
                  ],
                  "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
              }
              
              Object Tree (GET api.bimplus.net/v2/nemetschek/objects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e)
              {
                  "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
                  "type": "Project",
                  "attributes": {
                      "element": {
                          "isparent": true,
                          "elementtyp": "8d27ae6d-3c9a-4201-8a4d-bf0225861788",
                          "materialsurfaceid": "cdbd7fbc-0d02-4be5-adb3-04b7f0b2a638"
                      },
                      "general": {
                          "name": "Your Awesome Building",
                          "description": "Updating the example project",
                          "isobjectvalid": true
                      }
                  }
              }
              
              Object Topology Tree (GET api.bimplus.net/v2/nemetschek/objects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/topology)
              {
                  "parent": null,
                  "name": "Your Awesome Building",
                  "type": "ID_Project",
                  "children": [
                      {
                          "parent": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
                          "name": "Your Awesome Building",
                          "type": "ID_TopologyDivision",
                          "children": [
                              {
                                  "parent": "c1c6c2bc-f38e-4c01-ae5a-864baaa0b2d0",
                                  "name": "Brickwall",
                                  "type": "ID_ArchWall",
                                  "children": [],
                                  "id": "7cf910cb-e357-43f6-aa3a-b45c26380f75"
                              }
                          ],
                          "id": "c1c6c2bc-f38e-4c01-ae5a-864baaa0b2d0"
                      }
                  ],
                  "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
              }
              

              Find the geometry of an object. Get to know the types of geometry available

              US_Geometry

              The geometrical information(graphical representation) of a building can be accessed through the Bimplus Object Service. There are different types of geometry available for optimizing and viewing on different devices.

              There are three type of Geometry objects.

              • mesh: It is the default geometry type. It is an uncompressed mesh format where the geometry object will be compressed on the server before storing it into the database. Please use this API call(GET https://api.bimplus.net/v2//objects/) for getting the mesh information of an object.
              Get the mesh data from the object tree (GET api.bimplus.net/v2/<team>/objects/<object_id>)
              {
              "id": "7cf910cb-e357-43f6-aa3a-b45c26380f75",
              "type": "Wall",
              "attributes": {
              "element": {
                          "isparent": true,
                          "nr": 0,
                          "matrix": "AAAAAAAA8D8AAAAAAAAAgAAAAAAAAACAINejcP1YsEAAAAAAAAAAgAAAAAAAAPA/AAAAAAAAAIAK16Nw/fy
                                     2QAAAAAAAAACAAAAAAAAAAIAAAAAAAADwPwAArkfheoS/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8=",
                          "elementtyp": "10074eef-9418-4d64-9c6d-23932835a7f1",
                          "logparentid": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
                          "divisionid": "ac21b9a1-8853-4658-9fbf-0cf62340bd18"
                      },
              "general": {
                          "name": "Updated_Brickwall",
                          "isobjectvalid": true
                      },
              "allplan": {
                          "allplan_guid": "08b8195a-a2ad-11e2-9993-002215ea7d6b",
                          "allplan_id": 2065507287,
                          "allplan_text": "<PP>Wall",
                          "dateofexport": "2013-05-01T09:32:13"
                      },
              "geometry": {
              "mesh": "{\"C\":0,\"V\":[4450.01,115.01,0.01,3200.01,115.01,0.01,3200.01,0.01,0.01,4450.01,0.01,0.01,2315.01,
                        0.01,0.01,2315.01,115.01,0.01,0.01,115.01,0.01,0.01,0.01,0.01,4450.01,115.01,2750.01,4450.01,0.01,
                        2750.01,0.01,0.01,2750.01,0.01,115.01,2750.01,2315.01,115.01,2190.01,3200.01,115.01,2190.01,3200.01,
                        0.01,2190.01,2315.01,0.01,2190.01],\"F\":[4,0,1,2,3,4,4,5,6,7,4,8,9,10,11,4,0,3,9,8,8,6,5,12,13,1,0,
                        8,11,4,7,6,11,10,8,3,2,14,15,4,7,10,9,4,12,15,14,13,4,15,12,5,4,4,13,14,2,1]}"
              }
              }
              }
              
              • meshblob: It is a compressed mesh format intended to be used in the desktop CAD applications. Internal CAD format of the geometry will be converted into a Bimplus compressed mesh format with the help of a DLL in order to minimize the JSON object. Please use this API call(GET https://api.bimplus.net/v2//objects//geometries/meshblob) for getting the meshblob information of an object.
              Meshblob data (GET api.bimplus.net/v2/<team>/objects/<object_id>/geometries/meshblob)
              {
                  "elementsCount": 1,
                  "objects": [
                      {
                          "id": "7cf910cb-e357-43f6-aa3a-b45c26380f75",
                          "parent": "00000000-0000-0000-0000-000000000000",
                          "type": "Wall",
                          "attributes": {
                              "geometry": {
                                  "compress": true,
                                  "picture": "H4sIAAAAAAAEANVXW3PbRBTWylIsuUmctml6T900t7aua+eetiHOndAQDLS8pBnhyzYVUeQiyR0cGJ545y9QGB
              				54YYY3HvkXPPetQLlDuV/2E7uqiEfUMzRDkWc/zfl0tHvO2XPOWhKRJOkPduGOq1VmcLVQmPE8xywVzLJXc+iV+k06nE69QB3Xr
              				NpTQ9lcLpPNjExmxzIjufHRbDo1V7OgOGXTmucUrXSqUCtZZvkyrV+pblJ7yq5Zloo10qt0i3pu+QbdzKxe9UxrxSw5RaeemZstunT
              				BYk9tr1C16rRCnTh7Qb1ZNW1PoZUNqlwvlqm2ZTxXrJg1t33LmKV2xbQ3nKplUcVjRsrL87FYTFGU2G3yfN316FZmDg/LHrPbzSxRm
              				zpmObNiut6LubW1SFsCO9jSzJfdiMb6+luPwsQFFpfH28JFtmm7ZmFP5OrVmu3NOE6xjoRuUq03Sk0kJMyG4h4el6WaWYGsxwAKQGWQ
              				SKg/s5pqajoURfxW0apRw5A0TBbrkCTlJ/Z+eJU97IFsFGWjJBtl2ajIBpWN67KxIRs3ZMOUjZdkY1N6cGnxuMwvacelwNj/QX3AzBb
              				DZEa6quGa21Qzbv01Jwv0QFO2ra3De03TNXbr4EPBPj3+xfeP7vc3Y1rgvc5uh/hQ1Efl/a4W9r/zHqYF3idQkXzEkQgSEZnQ11QW+R
              				WOAtRbAW2AdkASgIn0vYB9gP2ATsABQBfgIADB1w8DjsAQXRiSgiGRrSK8n74dRwHHAMcB3YATAMyjnwT0AE4BegF9gH7AAGAQcBpwB
              				nAWkAacA2QA5wFZQA4wxKBNiyf+FrqHWow98C0eBowARgFjgHHABGAScAFwEXAJa7WoiHZzm4NEIa+QOtlGxrS0YMn7g9felEsf5F+e
              				Snz8zkfX8q92vr90Z/uNaYL9w9T3nv2wW5Xea1Ro26EgHgQK7VxBLNGgkAzP0PV2o0LHDoUGG/ZyBUE0KOzbodCwxP4dRooZ/CVfezd
              				POiO8CBQORCwRKHRFGBkoHIxw05eP3c6TQxF7ESgcjtiLQOFIRKiFgopaabqy1BLdMO0Y+0uJriHzXPfvKLejXPDz7TgnIOA0Id2cUPh
              				r5AQn0G1bQKQ4AQH/a8lJTkBAVyI9nND4a+QUJ9AqUHyklxMJ7jjp4wQE5Dbp50Qrf40MhAzz5xgMTepbejpkGNKfnOEEBKQ7OcuJdhG
              				PdGgV35dzITt8XzKhAKEiyHlOQEAFkCwnOoS3udCyvsZQ6BUsrQ43s51oO/BLxReDG3u9iYOOqyzb3vBQOrXllquOZZYeHGIj7ARjv4c
              				fXaXx8eJoeXQsNzk8QrMTk+v+EaRPwRs0QL8TPgFpVEjTkMaElIc0LqQZSBNCmoU0KaQ5SBeENA/popAWIF0S0iJ2Hyb8x6GIPtHjKDh
              				NX+Jp6tcQogSj9SfD7LRgl8NsXrBPhdkZwV7mSekn5qxgV8K6c4J9Oqw7L9jVsO6CYJ8Js4uCLYTYpHBJE61ENIykcEsTDUK0gaRwTRN
              				lL4o7KdzTfmUfByiTH9gdlZEMXMRnhygxnCP4tP+Gje/YwLGRFG5r+MD4go3v2cB5kQxc/40xOCBwBqDN/8jkz9m4z8a3mF+EQ0OP/4w
              				xaOVf4YkIifYJk75m4xc2PsUTERbtLpPusfE7G1/iI+dPBQ0gCIMQAAA=",
                                  "type": 3,
                                  "matrix": "AAAAAAAA8D8AAAAAAAAAgAAAAAAAAACAINejcP1YsEAAAAAAAAAAgAAAAAAAAPA/AAAAAAAAAIAK16Nw/fy2QAAAAAAAAACAAAAAAAAAAIAAAAAAAA
                                            DwPwAArkfheoS/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8="
                              }
                          }
                      }
                  ]
              }
              
              
              • threejs: It is a format which is optimized for viewing on mobile devices or in browsers where the native model is filtered and tessellated in order to deliver minimal JSON size and maximal navigation speed (FPS). This model has ThreeJS JSON v 3.1 format and can be directly parsed by the client.Please use this API call(GET https://api.bimplus.net/v2//objects//geometries/threejs) for getting the threejs information of an object.
              ThreeJS data (GET api.bimplus.net/v2/<team>/objects/<object_id>/geometries/threejs)
              {
                  "elementsCount": 1,
                  "viewbox": {
                      "x": -5081.562,
                      "y": 5005.8785,
                      "z": 1231.1029999999996,
                      "width": 5950,
                      "height": 5540.835,
                      "depth": 7065.71
                  },
                  "colors": [
                      -9868951
                  ],
                  "objects": [
                      {
                          "id": "f5cc3c6c-1fdf-499d-a38d-0582adadc216",
                          "type": "RoofLayer",
                          "attributes": {
                              "geometry": {
                                  "threejs": {
                                      "faces": [
                                          0,
                                          2,
                                          1,
                                          3,
                                          0,
                                          5,
                                          3,
                                          9,
                                          1,
                                          1,
                                          14,
                                          1,
                                          5,
                                          6,
                                          15,
                                          12,
                                          1,
                                          7,
                                          4,
                                          13,
                                          14
                                      ],
                                      "vertices": [
                                          -2106.562,
                                          7588.114,
                                          -2301.752,
                                          -8056.562,
                                          7588.114,
                                          -2301.752,
                                          -8056.562,
                                          -880.999,
                                          -4742.212,
                                          6700,
                                          -880.999,
                                          -4742.212,
                                          7412.539,
                                          -1821.578,
                                          -5522.212,
                                          7412.539,
                                          -1821.578
                                      ],
                                      "metadata": {
                                          "formatVersion": 3,
                                          "colorid": 0
                                      }
                                  }
                              },
                              "quantity": {
                                  "length": 7065.71,
                                  "height": 150,
                                  "volume": 7911354818.818842,
                                  "area": 52742365.4587924
                              },
                              "general": {
                                  "name": "<PP>RoofLayer"
                              }
                          }
                      }
                  ]
              }
              

              Get the project layers and element types. Find the relation between them

              US_Discipline

              A group of element types constitute a layer. But an element type cannot belong to two layers. Both the element types and layers are predefined.

              • Please see the list of element types here
              • The list of element types can be accessed through this API call(GET https://api.bimplus.net/v2//element-types)
              • The list of layers can be accessed through this API call(GET https://api.bimplus.net/v2//element-types/disciplines)

              Filter the building information using different filter criteria

              US_Filters

              The "ThreeJS" or the "meshblob" information can be filtered by the layer.

              • Please use this API call (GET https://api.bimplus.net/v2/<team>/objects/<object_id>/disciplines/<discipline_id>/geometries/threejs) to get the object tree with selected property list whose geometry type is "ThreeJS" filtered by layer
              • Please use this API call (GET https://api.bimplus.net/v2/<team>/objects/<object_id>/disciplines/<discipline_id>/geometries/meshblob) to get the object tree whose geometry type is "compressed geometry mesh (meshblob)" filtered by layer

              Import an existing project in the form of IFC/SketchUp file

              US_Import

              Projects in the form of IFC/SketchUp files can be imported into the Bimplus platform by using the Bimplus Import Service


              Create and assign issues to projects. Locate/visualize the issues in the project

              US_Issues

              Any problems or remarks can be reported and assigned to a project in the form of issues. To understand the problem better, comments or attachments can be added to the issue.

              • Please use the Bimplus Project Service for creating/deleting an issue or for getting all the issues assigned to a project

              Pins are used to visualize the issues. Pins are relation between an issue and an object. It defines position of an issue in the 3D space.


              Add attachments to the whole building as well as to the individual objects

              US_Attachment

              The pictures or any other documents(pdf, ifc etc) can be attached to both the project as well as the individual objects.

              • Please use the Bimplus Project Service (POST https://api.bimplus.net/v2//projects//attachments) for adding an attachment to the project.
              • Verify whether the picture has been attached to the project using the Bimplus Project Service (GET https://api.bimplus.net/v2//projects//attachments)
              • Please use the Bimplus Object Service (POST https://api.bimplus.net/v2//objects/attachments) for adding an attachment to the object.
              • Verify whether the picture has been attached to the object using the Bimplus Object Service (GET https://api.bimplus.net/v2//objects//attachments)

              Find out how many teams I am part of. Remove myself from some of the teams

              US_Remove_User

              • After getting the team list, use the Bimplus Membership Management Service (DELETE https://api.bimplus.net/v2//members/) to delete yourself from some of the teams that you don't want to be part of.

              Authentication token for multiple logins and cross client authentication using temporary token

              US_Cross_Authentication

              • Please use the client_id as part of the authentication request. The client_id is a unique identifier for the client which is authorizing the user against the API server. The client_id will be generated from the server during the authentication request(Please see the response of the authentication request). A token can be generated based on the client_id and the user_id which will allow multiple logins at the same time and increase security because the token is only valid for this device(Browser, Mobile App).

              • As you see from the above picture, call 1 generates the client_id from the server. Using this client_id, a new token is regenerated using the call 2(using the same API call with client_id as the additional parameter) which can be used for multiple logins at the same time. If the token generated without the client_id is used to login multiple times at the same time, then the second login will cause the logout of the first login.

              Example:

                 
                 

                POST

                 
                 

                Resource: authorize 

                URLhttps://api.bimplus.net/v2/authorize

                JSON Structure

                Name

                Mandatory / Optional

                Type

                Description

                user_id

                mandatory

                string

                The email address of the user

                password

                mandatory

                string

                The user's password

                client_id

                optional

                string

                The identifier of the used client

                application_id

                optional

                string

                The id of the application

                 
                 

                Authenticate by requesting and receiving a token.

                 
                 
                Headers
                Content-Type: application/json
                
                JSON
                {
                 "user_id" : "test@bimplus.net",
                 "password" : "test"
                }
                
                 
                 
                Status
                Status: 200 OK
                
                JSON
                {
                access_token: "e3271e89d8ea474c82745039bc2bed0d"
                expires_in: 2591999
                client_id: "9fd0bb9d-570b-4719-bfae-93e2f879c19a"
                token_type: "BimPlus"
                }
                
                 

                Error rendering macro 'deck'

                java.lang.NullPointerException


                Use the client_id "9fd0bb9d-570b-4719-bfae-93e2f879c19a" to generate a token for multiple logins.

                   
                   

                  POST

                   
                   

                  Resource: authorize 

                  URLhttps://api.bimplus.net/v2/authorize

                  JSON Structure

                  Name

                  Mandatory / Optional

                  Type

                  Description

                  user_id

                  mandatory

                  string

                  The email address of the user

                  password

                  mandatory

                  string

                  The user's password

                  client_id

                  optional

                  string

                  The identifier of the used client

                  application_id

                  optional

                  string

                  The id of the application

                   
                   

                  Authenticate by requesting and receiving a token.

                   
                   
                  Headers
                  Content-Type: application/json
                  
                  JSON
                  {
                   "user_id" : "test@bimplus.net",
                   "password" : "test",
                   "client_id" : "9fd0bb9d-570b-4719-bfae-93e2f879c19a"
                  }
                  
                   
                   
                  Status
                  Status: 200 OK
                  
                  JSON
                  {
                  access_token: "c33fa174169e46999fe82fb07fc53e3d"
                  expires_in: 2591999
                  client_id: "9fd0bb9d-570b-4719-bfae-93e2f879c19a"
                  token_type: "BimPlus"
                  }
                  
                   

                  Error rendering macro 'deck'

                  java.lang.NullPointerException

                   

                  • For switching the client, the cross token service can be used. This service is basically used for requesting a disposable temporary token which will be used for authenticating against different clients. Based on the given authentication token the user is identified and a one time token is generated and returned. This one time cross token is valid only for 5 minutes and is used for logging into the given device/client using cross authentication service . As a result of this call, this one time cross token will be removed but the new token which will be generated can be used in the header for the subsequent API calls.

                  Here is the cross token workflow:

                  • No labels