Structure Service
- Create a new structure in a project
- Get the structure details
- Create a sub-node under the structure
- Get the structure topology
- Assign an object to the latest/last structure node
- Assign additional objects to the latest structureElement node
- Remove assigned object from the latest structureElement node
- Copy the structure
- Update the structure
- Delete the structure
- Create new variant type in a project
- Get the variant type details
- Get the list of existing variant types in a project
- Update the variant type
- Delete the variant type
- Copy content of source variant type to target variant type
Structure Service
A hierarchical tree structure(eg: cost structure) could be added and later retrieved from a project/object using the Structure service
Create a new structure in a project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/structures
Example:https://api-stage.bimplus.net/v2/bimplus/projects/622272da-f1ff-45ab-a3f0-c8f1255c80e8/structures
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
parentId |
mandatory |
string(guid) |
Parent node id of the structure (for the first structure, projectId is the parentId) |
name |
mandatory |
string |
Name of the structure |
description |
optional |
string |
Description of the structure |
type | optional | string | Type of the structure (eg: costStructure, specificationStructure) |
nr | will be ignored | integer | The index of the structure |
color | optional | integer | Color of the structure |
id | will be ignored | string(guid) | Unique guid of the structure |
startDate | optional | string (date) | Start date ( depends on type of structure ) |
endDate | optional | string (date) | End date ( depends on type of structure ) |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "TestStructure", "description": "FullLifeCycleTest", "type": "CostStructure" }
Status: 201 Created
{ "parentId": "622272da-f1ff-45ab-a3f0-c8f1255c80e8", "name": "TestStructure", "description": "FullLifeCycleTest", "type": "CostStructure", "nr": 1, "color": 0, "id": "179439d6-df16-41cc-bd2c-74d05b7995d5" }
Get the structure details
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{ "name": "TestStructure", "description": "FullLifeCycleTest", "type": "CostStructure", "nr": 1, "color": 0, "id": "179439d6-df16-41cc-bd2c-74d05b7995d5" }
Create a sub-node under the structure
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
parentId |
mandatory |
string(guid) |
Parent node id of the structure (the id specified in the resource url) |
name |
mandatory |
string |
Name of the structure |
description |
optional |
string |
Description of the structure |
type | optional | string | Type of the structure (eg: costStructure, specificationStructure) |
nr | will be ignored | integer | The index of the structure |
color | optional | integer | Color of the structure |
id | will be ignored | string(guid) | Unique guid of the structure |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "Node 1" }
Status: 201 Created
{ "parentId": "179439d6-df16-41cc-bd2c-74d05b7995d5", "name": "Node 1", "type": "TopologyStructure", "nr": 1, "color": 0, "id": "adf506ae-3628-4501-9af1-22bcf27e4ab4" }
Get the structure topology
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>/topology?varianttype=<varianttype_id>
Optional query paramaters
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{ "parent": null, "name": "TestStructure", "type": "Structure", "children": [ { "parent": "179439d6-df16-41cc-bd2c-74d05b7995d5", "name": "Node 1", "type": "Structure", "children": [], "id": "adf506ae-3628-4501-9af1-22bcf27e4ab4" } ], "id": "179439d6-df16-41cc-bd2c-74d05b7995d5" }
Assign an object to the latest/last structure node
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>/assign/<object_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5/assign/df4a81d6-42fb-4187-bbce-82a2fc093b2f
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
color |
optional |
string(guid) |
The id of the last node to which an object will be assigned |
objectId |
will be ignored |
string(guid) |
The id of the object to whom a structure will be assigned |
name |
mandatory |
string |
The name of the structure-object connection |
nr | will be ignored | integer | The index of the structure-object connection |
id | will be ignored | string(guid) | Unique guid of the structure-object connection |
variantType | optional | string(guid) | Variant Type Id to whom the object will be assigned |
IfcGloballyUniqueId | optional | string | IFC globally unique ID |
Assign an object to the latest/last structure node
Note :
Works with two different inputs
- Object ID is present in the url - this object ID is used
- Object ID is not present, but content json contains IfcGloballyUniqueId - a corresponding Bimplus object is found and used as input object ID
- if this IFC id is not found -> return "404 Not Found", if present multiple times -> return "409 Conflict"
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "WallConnection", "variantType" : "35b986c2-e9cd-482e-9281-6000671a49f0" }
Status: 201 Created
{ "structureId": "adf506ae-3628-4501-9af1-22bcf27e4ab4", "objectId": "df4a81d6-42fb-4187-bbce-82a2fc093b2f", "name": "WallConnection", "nr": 1, "id": "35b986c2-e9cd-482e-9281-6000671a49f0" }
Assign additional objects to the latest structureElement node
Resource: structures/<structureElement_id>/assign/<object_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structureElement_id>/assign/<object_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5/assign/df4a81d6-42fb-4187-bbce-82a2fc093b2f
POST
{ "structureId": "adf506ae-3628-4501-9af1-22bcf27e4ab4", "objectId": "df4a81d6-42fb-4187-bbce-82a2fc093b2f", "name": "WallConnection", "nr": 1, "id": "35b986c2-e9cd-482e-9281-6000671a49f0",
"variantType" : "35b986c2-e9cd-482e-9281-6000671a49f0"
}
Remove assigned object from the latest structureElement node
Resource: structures/<structureElement_id>/delete/<object_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structureElement_id>/delete/<object_id>
Example: https://api-stage.bimplus.net/v2/bimplus/structures/35b986c2-e9cd-482e-9281-6000671a49f0/delete/df4a81d6-42fb-4187-bbce-82a2fc093b2f
DELETE
HttpStatusCode.OK
Copy Structure
Resource: structures/<structure_id>/copy
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>/copy
Example: https://api-stage.bimplus.net/v2/bimplus/structures/35b986c2-e9cd-482e-9281-6000671a49f0/copy
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
|
|
|
|
name |
mandatory |
string |
Name of the new structure |
|
|
|
|
type | optional | string | Type of the new structure (eg: costStructure, specificationStructure) |
nr | will be ignored | integer | The index of the new structure |
color | optional | integer | Color of the new structure |
id | will be ignored | string(guid) | Unique guid of the structure |
startDate | optional | string (date) | Start date ( depends on type of structure ) |
endDate | optional | string (date) | End date ( depends on type of structure ) |
POST
Update the structure
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
parentId |
optional |
string(guid) |
Parent node id of the structure (for the first structure, projectId is the parentId) |
name |
optional |
string |
Name of the structure |
description |
optional |
string |
Description of the structure |
type | optional | string | Type of the structure (eg: costStructure, specificationStructure) |
nr | optional | integer | The index of the structure |
color | optional | integer | Color of the structure |
id | will be ignored | string(guid) | Unique guid of the structure |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "Updated Structure" }
Status: 200 OK
{ "parentId": "622272da-f1ff-45ab-a3f0-c8f1255c80e8", "name": "Updated Structure", "description": "FullLifeCycleTest", "type": "CostStructure", "nr": 1, "color": 0, "id": "179439d6-df16-41cc-bd2c-74d05b7995d5" }
Delete the structure
Resource: structures/<structure_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/db540336-47a3-426e-b3bf-1e532bfac8ea
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
parentId |
optional |
string(guid) |
Parent node id of the structure (for the first structure, projectId is the parentId) |
name |
optional |
string |
Name of the structure |
description |
optional |
string |
Description of the structure |
type | optional | string | Type of the structure (eg: costStructure, specificationStructure) |
nr | optional | integer | The index of the structure |
color | optional | integer | Color of the structure |
id | will be ignored | string(guid) | Unique guid of the structure |
Create a new variant type in a project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/variants
Example:https://api-stage.bimplus.net/v2/bimplus/projects/622272da-f1ff-45ab-a3f0-c8f1255c80e8/variants
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
name |
mandatory |
string |
Name of the variant type |
description |
optional |
string |
Description of the variant type |
id | will be ignored | string(guid) | Unique guid of the variant type |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "TestVariant type", "description": "Description of the Test variant type" }
Status: 201 Created
{ "name": "TestVariant type", "description": "Description of the Test variant type", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" }
Get the variant type details
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/variants/<varianttype_id>
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{ "name": "TestVariant type", "description": "Description of the Test variant type", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" }
Get the list of existing variant types in the project
Resource: projects/<project_id>/variants
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/variants
Example:https://api-stage.bimplus.net/v2/bimplus/projects/622272da-f1ff-45ab-a3f0-c8f1255c80e8/variants
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
[ { "name": "TestVariantType1", "description": "Description of the Test variant type 1", "id": "6dc03014-8601-49fd-bae9-ef5b185603b6" }, { "name": "TestVariantType2", "description": "Description of the Test variant type 2", "id": "4c1fda6b-7fd9-42a7-a4ae-88eababd3082" }, { "name": "TestVariantType3", "description": "Description of the Test variant type 3", "id": "f2cf9b21-c1bb-463d-bbee-a6fbfb5e8b3e" }, { "name": "TestVariantType4", "description": "Description of the Test variant type 4", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" } ]
Update the variant type
URL: https://api-stage.bimplus.net/v2/<team_slug>projects/<project_id>/variants/<varianttype_id>
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
name |
optional |
string |
Name of the variant type |
description |
optional |
string |
Description of the variant type |
id | will be ignored | string(guid) | Unique guid of the variant type |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "Updated TestVariantType4 name" "description": "Updated description of the TestVariantType4" }
Status: 200 OK
{ "name": "Updated TestVariantType4 name", "description": "Updated description of the TestVariant type 4", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" }
Delete the variant
Resource: projects/<project_id>/variants/<varianttype_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>projects/<project_id>/variants/<varianttype_id>
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Copy content of source variant type to target variant type
Resource: projects/<project_id>/variants/<targetvarianttype_id>/copyfrom
URL: https://api-stage.bimplus.net/v2/<team_slug>projects/<project_id>/variants/<targetvarianttype_id>/copyfrom
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
name |
will be ignored |
string |
Name of the variant type |
description |
will be ignored |
string | Description of the variant type |
id | mandatory | string(guid) | Unique guid of the source variant type |
PUT
Updates the specified target variant type with all structure element's assignments of elements from source variant type.
When variant type id is missing will be used internally default variant type (Guid.Empty) as a source variant type
Note:
In case when at least one element is already assigned in target variant type and the same element is also present in source variant type,
such api call will return Conflict response and target variant type will not be updated.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "ignored variant type name", "description": "ignored description of variant type", "id": "f2cf9b21-c1bb-463d-bbee-a6fbfb5e8b3e" }
Status: 200 OK
{ "name": "Updated TestVariantType4 name", "description": "Updated description of the TestVariant type 4", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" }