适用于 ArcGIS Indoors Maps 扩展模块。
您可以创建 3D 场景以在 Indoor Viewer 中用于探索和导航。
要创建符合 Indoors 模型的 3D 场景,请执行以下操作之一:
- 通过设置单元和细节的相对高程,将 2D 地图中使用的室内图层转换为 ArcGIS Pro 中的多面体要素,然后将设施点面转换为带纹理的立面。
- 使用包含平面图的 BIM 数据文件适用的导入工具,导入 3D 要素的子集。 对于 Revit 模型使用将 BIM 导入室内数据集工具,对于 .ifc 文件使用将 IFC 导入室内数据集工具。
注:
如果随附的 Web 地图已经发布,则 Indoor Viewer 仅支持 3D 模式。 因此,无需将独立表与 Web 场景一起发布。
使用 BIM 数据创建 3D 场景
您可以使用创建室内 3D 数据集工具创建用于维护 3D 要素和 2D 平面图数据的数据集,并使用 Revit 模型的将 BIM 导入室内数据集工具或 IFC 文件的将 IFC 导入室内数据集工具导入数据。 导入数据后,还可以附加来自其他 BIM 数据或 2D 数据集的其他数据。
要使用导入的 BIM 数据创建用于 Indoor Viewer 的场景,请完成以下步骤:
- 启动 ArcGIS Pro,然后打开包含 Indoors 工作空间的工程。
- 在插入选项卡上,单击新建地图下拉箭头,然后单击新建全球场景。
- 添加 Levels 图层和任何其他要包含的 2D 图层。
注:
如果您已发布用于 Indoor Viewer 的 Web 地图,则可以从已发布的要素服务中添加这些图层。
- 将以下 3D 图层添加到场景中:Facilities 3D、Units 3D 和 Details 3D。
注:
如果 Revit 模型包含外部要素的多个设计选项,或者在 Revit 模型中外部要素未被归类为外部,则 Facilities 3D 图层可能无法满足您的要求。
可以使用下面详述的规则包来创建设施点框架。
- 配置 3D 图层的符号系统。
或者,通过在符号系统窗格中为图层选择白色带边(使用纹理),为 Details 3D 和 Facilities 3D 图层启用边渲染。
- 将场景配置为楼层感知型场景。
- 如果数据的坐标系不使用公制单位,请通过执行以下操作将数据投影到公制单位的坐标系中:
- 将 Units 3D 图层、Details 3D 图层和任何具有室内要素的附加图层配置为楼层感知型图层。
- 确认 Facilities 3D 图层的名称是否与要在 Indoor Viewer 中识别的图层的以下约定命名之一匹配:
- Facilities
- Facilities Textured
- Facilities3D
- Facilities 3D
该场景填充有从 BIM 导入的 3D 数据。
通过将 2D 要素转换为 3D 要素来创建 3D 场景
在准备 3D 单位之前,必须将 2D 要素转换为 3D 要素。
要从楼层感知型场景创建室内 3D 数据集,请完成以下步骤:
- 启动 ArcGIS Pro 并打开包含您所准备的、要用于 Viewer 的 2D 地图。
- 在插入选项卡上,单击新建地图下拉箭头,然后单击新建全球场景。
- 从已完成的 2D 室内地图中将所有图层(底图和独立表除外)复制到刚刚创建的场景中。
- 将场景配置为楼层感知型场景。
为场景配置符号系统时,可以使用楼层过滤器在站点、设施点和级别之间进行切换。
注:
在 Viewer 应用程序中使用的场景必须是楼层感知型场景。
- 请运行创建室内 3D 数据集工具以在 Indoors 地理数据库中创建 3D 数据集。
输出 3D 数据集必须与现有 Indoors 要素数据集具有相同的空间参考。 如果空间参考不同,要素可能无法正确对齐。
- 在场景的内容窗格中,取消选中 WorldElevation3D/Terrain3D 图层复选框以关闭高程表面图层。
该场景填充有从 2D 要素导入的 3D 数据。
为 3D 准备单元
要为 3D 场景准备单位,请完成以下步骤:
- 在内容窗格中,右键单击 Units 图层,然后单击属性。
将弹出图层属性对话框。
- 在高程选项卡上,将要素位于参数设置为绝对高度处。
- 将其他要素高程使用以下值参数设置为几何 z 值。
- 将制图偏移参数设置为 0.50,并将垂直单位参数设置为米。
- 在定义查询选项卡上,使用 Where、Use Type 和 does not Include the value(s) 创建定义查询,并指定表示楼梯或电梯单元的字段值。
- 单击应用。
- 单击确定。
- 通过执行以下操作运行 3D 图层转要素类工具:
- 对于输入要素图层参数,选择 Units 图层。
- 对于输出要素类参数,将输出文件命名为 Units_Multipatch 并选择室内 3D 数据集作为输出位置。
Web 场景中的 Units 图层的名称必须为 Units 3D 或 Units。 此步骤的输出要素类可以具有不同的名称,但是单元的场景图层必须具有有效名称。
- 单击运行。
- 从场景中移除 Units 3D 或 Units 图层。
- 通过执行以下操作运行追加工具:
- 对于输入数据集参数,选择 Units_Multipatch 图层。
- 对于目标数据集参数,选择 Units 3D 图层。
- 对于字段匹配类型参数,选择使用字段映射协调字段差异选项。
- 验证是否针对字段映射参数映射了以下字段:UNIT_ID、USE_TYPE、NAME、NAME_LONG、LEVEL_ID 和 AREA_GROSS。
如果这些字段已存在于 Units3D 要素类中,则可以映射更多字段。
- 单击运行。
- 从场景中移除 Units_Multipatch 图层。
- 将楼层属性设置为 LEVEL_ID,以将 Units 3D 图层设置为楼层感知型图层。
- 为 Units 3D 图层启用弹出窗口。
已配置的弹出窗口应包括所有可用属性。 如果没有,请配置弹出窗口以显示所需的属性。
Units 3D 图层已填充数据,可以在 3D 场景中使用。
为 3D 场景准备细节
要为 3D 场景准备细节,请完成以下步骤:
- 右键单击 Details 图层,然后单击属性。
将弹出图层属性对话框。
- 在高程选项卡上,将要素位于参数设置为绝对高度处。
- 将其他要素高程使用以下值参数设置为几何 z 值选项。
- 将制图偏移参数设置为 0.50 米。
- 在定义查询选项卡上,使用 Where Use Type includes the value(s) 定义查询并指定相应字段值,这些字段值表示要在场景中显示为已拉伸要素的细节要素,例如墙壁、门、窗户和圆柱。
注:
其中不包括电梯、楼梯和注记要素。
- 单击应用。
- 单击确定关闭图层属性对话框。
- 通过执行以下操作设置 Details 图层上的拉伸:
- 在要素图层选项卡的拉伸组中,为要素拉伸类型参数选择最小高度选项 。
- 单击拉伸表达式按钮 。
随即显示表达式构建器对话框。
- 在表达式文本框中键入您想要拉伸要素的高度,然后单击确定。
建议将要素拉伸到楼层高度的 50% 左右。 由此可以可视化级别上的细节,而不会被级别全高的墙壁遮挡内部细节的视图。
- 将单位参数设置为相应测量单位。
- 通过执行以下操作运行 3D 图层转要素类工具:
- 对于输入要素图层参数,选择 Details 图层。
- 对于输出要素类参数,将输出文件命名为 Details_Multipatch 并选择室内 3D 数据集作为输出位置。
- 从场景中移除该 Details 线图层。
注:
仅保留 Details_Multipatch 和 Details 3D 图层。
Details 3D 图层已填充数据,可以在 3D 场景中使用。
将细节分离到要素类中
可以将细节分隔到多个要素类中,以更好地控制可视化。 您可以将墙壁、门、窗户和其他细节要素分隔到不同的图层中,并针对每个图层使用不同的符号系统。
要将墙壁、门、窗户和其他细节要素分隔到四个单独的要素类中,请完成以下步骤。
注:
或者,如果您不将细节要素分隔到多个 3D 要素类中,则可以运行追加工具以使用查询将 Details_Multipatch 图层中的细节要素追加到 Details 3D 图层,以包含您希望以 3D 形式显示的所有细节要素。
- 通过执行以下操作运行追加工具。
- 对于输入数据集参数,选择 Details_Multipatch 图层。
- 对于表达式参数,设置 Where Use Type Includes the value(s) 查询并指定表示非玻璃墙壁或柱的任何字段值。
- 对于目标数据集参数,选择 Walls 3D 图层。
- 对于字段匹配类型参数,选择使用字段映射协调字段差异。
字段映射随即出现,其中 LEVEL_ID 字段已映射。 包括以下附加映射:
- 将 WALL_ID 字段映射到 DETAIL_ID 字段。
- 将 WALL_TYPE 字段映射到 USE_TYPE 字段。
如果这些字段已存在于 Walls3D 要素类中,则可以映射更多字段。
- 单击运行。
- 将 Walls 3D 图层的 Floors 属性设置为 Level ID 字段以使其具有楼层感知能力。
- 对于 Details_Multipatch 图层,重复步骤 1 和 2 以分隔门要素的细节。 设置表达式以包含应用于门的 USE_TYPE 字段值,并选择 Doors 3D 图层作为目标数据集。
- 对于 Details_Multipatch 图层,重复步骤 1 和 2 以分隔窗户的细节。 设置表达式以包含应用于窗户的 USE_TYPE 字段值,并选择 Windows 3D 图层作为目标数据集。
- 对于 Details_Multipatch 图层,重复步骤 1 和 2,以分隔要在 3D 场景中可视化的任何附加要素的细节。 设置表达式以包含表示这些要素的 USE_TYPE 字段值,并选择 Details 3D 图层作为目标数据集。
- 或者,可以更改门和窗户要素的透明度:
- 选择要更新其透明度的图层。
- 在要素图层上下文选项卡的效果组中,将透明度参数设置为 70%。
- 发布之前,请从场景中移除 Details_Multipatch 图层和任何未使用的 3D 图层。
将 3D 细节组织成多个 3D 图层,使用数据填充,并准备好在 3D 场景中使用。
将设施点面转换为 3D 立面
要将设施点面转换为带纹理的 3D 立面,请完成以下步骤:
- 右键单击 Facilities 图层,然后单击属性。
将弹出图层属性对话框。
- 在高程选项卡上,将要素位于参数设置为绝对高度处。
- 将其他要素高程使用以下值参数设置为几何 z 值选项。
- 将制图偏移参数设置为 0.50 米,然后单击确定。
- 在内容窗格中单击 Facilities 图层的符号以打开符号系统窗格。
随即显示格式化面符号窗格。
- 单击属性选项卡。
- 单击图层按钮 ,然后选择程序填充。
- 单击规则以分配程序规则包 (*.rpk),然后选择 Symbology 文件夹中的 Indoors_TexturedFacade.rpk 文件(包含在 Indoors 产品数据文件中)。
注:
您可以使用自己的规则包或带纹理的多面体构建模型来获得更加个性化的外观。 所提供的示例规则包将使用“相对高度”和“地面上方高度”属性来创建带纹理的简单 3D 立面,并按楼层进行分割。
将出现程序填充参数。 将鼠标悬停在每个参数上,以了解值将如何更改已完成的建筑物立面外观。
在格式化面符号窗格的属性部分中,将直接从设施点面读取 HEIGHT_RELATIVE 和 LEVELS_ABOVE_GROUND 属性,如下图中的数据库连接符号指示:
- 在每个程序填充参数更改后,单击应用以在场景中查看结果。
- 在几何选项部分中,使用选项简化面,对其进行轻微缓冲或更改窗口大小。
- 单击应用以创建最终的 3D 纹理立面模型。
- 通过执行以下操作运行 3D 图层转要素类工具:
- 对于输入要素图层参数,选择 Facilities 图层。
- 对于输出要素类参数,将其命名为 Facilities_Multipatch 并将其放置在 Indoor3D 要素数据集中。
随即将 Facilities_Multipatch 图层添加到场景。
- 通过执行以下操作运行追加工具:
- 对于输入数据集参数,选择 Facilities_Multipatch 图层。
- 对于目标数据集参数,选择 Facilities 3D 图层。
- 对于字段匹配类型参数,选择使用字段映射协调字段差异选项。
- 验证是否针对字段映射参数映射了以下字段:FACILITY_ID、NAME、NAME_LONG 和 SITE_ID。
如果这些字段已存在于 Facilities3D 要素类中,则可以映射更多字段。
- 单击运行。
- 将 Facilities 3D 图层重命名为以下名称之一:
- Facilities
- Facilities Textured
- Facilities3D
- Facilities 3D
注:
Web 场景中 Facilities 3D 图层名称必须与上述选项之一匹配。
- 从场景中移除 Facilities 面图层和 Facilities_Multipatch 图层。
- 为 Facilities Textured 图层启用弹出窗口。
已配置的弹出窗口应包括所有可用属性。 如果没有,请配置弹出窗口以显示所需的属性。
- 设置场景的室内图层属性,以将场景设置为楼层感知型场景:
- 对于设施点参数,选择 Facilities Textured。
- 对于楼层参数,选择 Levels。
可在显示选项部分自定义屋顶、墙壁和窗户样式和纹理。
Facilities 3D 图层已填充数据,可以在 3D 场景中使用。
启用边渲染
在 ArcGIS Pro 中查看 Indoors 单元和墙壁或将其作为已发布的场景图层进行查看时,该单元和墙壁有时会呈现冲刷后的外观。 要通过启用边渲染增强多面体要素的边和对比度,请完成以下步骤:
- 对于包含细节和单元要素的 3D 图层,如有必要,请在内容窗格中展开图层,然后单击图层下方的颜色方块,打开格式化网格符号窗格。
- 单击库选项卡并选择白色带边(使用纹理)。
现在,您可以将场景共享给您的 ArcGIS 组织,以便在 Viewer 应用程序中使用。