区域对象看起来像 Revit Room 或 Revit Zoom。如果您的缩放或房间在查看器上是可点击的,那么您可以通过 API Get Properties 获取其属性。以下是我用来归档你想要的东西的几个步骤,你可以比较是否有遗漏的东西。
检查房间/区域元素在您的 Revit 工作表中是否有效。房间/区域应由墙壁或Room Separation/Area Boundary 围起来。
确保包含您的房间/区域的工作表包含在 Revit Publish Setting 的集合中
将配置良好的 RVT 上传到 Forge 进行翻译。
翻译完成后,通过 Forge Viewer 加载工作表视图(在本例中称为 A102 - Plans),并确保视图中的房间/区域元素是可点击的。
通过viewer.getSelection() 检索选定房间/区域的objectId。以objectId of the selected room/area in this view is4089` 为例。
调用 API GET :urn/metadata 以获取工作表的 guid。例如,现在是abdacd31-f94c-e84f-9a58-4663e281d894。
{
"data": {
"type": "metadata",
"metadata": [
{
"name": "{3D}",
"role": "3d",
"guid": "6bfb4886-f2ee-9ccb-8db0-c5c170220c40"
},
{
"name": "A102 - Plans",
"role": "2d",
"guid": "abdacd31-f94c-e84f-9a58-4663e281d894"
}
]
}
}
- 调用APIGET :urn/metadata/:guid获取该视图的实例树,并检查是否有我们想要的id的房间/区域。例如在 API 响应中,房间名为
Kitchen & Dining 101 [857279],ID 为 4089。
{
"objectid": 4084,
"name": "Rooms",
"objects": [
{
"objectid": 4085,
"name": "Bath 203 [857200]"
},
{
"objectid": 4086,
"name": "Bath 205 [857203]"
},
{
"objectid": 4087,
"name": "Bedroom 202 [857206]"
},
{
"objectid": 4088,
"name": "Entry Hall 201 [857209]"
},
{
"objectid": 4089,
"name": "Kitchen & Dining 101 [857279]"
}
]
}
- 以这种方式调用APIGET :urn/metadata/:guid/properties来检索房间/区域的属性。比如
/modelderivative/v2/{YOUR_RVT_URN}/metadata/abdacd31-f94c-e84f-9a58-4663e281d894/properties?objectid=4089,它的响应如下图,那么你会看到你想要的区域显示在响应中。
{
"data": {
"type": "properties",
"collection": [
{
"objectid": 4089,
"name": "Kitchen & Dining 101 [857279]",
"externalId": "e6ac360b-aaed-4c3b-a130-36b4c2ac9d13-000d1467",
"properties": {
"Constraints": {
"Base Offset": "0.000 mm",
"Level": "Level 1",
"Limit Offset": "6500.000 mm",
"Upper Limit": "Level 1"
},
"Dimensions": {
"Area": "26.971 m^2",
"Computation Height": "0.000 mm",
"Perimeter": "29060.000 mm",
"Unbounded Height": "6500.000 mm",
"Volume": "118.317 m^3"
},
"Identity Data": {
"Base Finish": "",
"Ceiling Finish": "",
"Comments": "",
"Department": "",
"Floor Finish": "",
"Image": "",
"Name": "Kitchen & Dining",
"Number": "101",
"Occupancy": "",
"Occupant": "",
"Wall Finish": ""
},
"Phasing": {
"Phase": "Working Drawings"
}
}
}
]
}
}
希望对你有帮助~