为 Indoor Viewer 准备场景

适用于 ArcGIS Indoors Maps 扩展模块。

您可以选择创建 3D 场景以在 Indoor Viewer 中用于探索和导航。

可以通过两种方法来创建符合 Indoors 模型的 3D 场景:

  1. 通过设置单元和细节的相对高程,将 2D 地图中使用的室内图层转换为 ArcGIS Pro 中的多面体,然后将设施点面转换为带纹理的立面。
  2. 可以使用将 BIM 导入室内数据集工具将 3D 要素的子集从 Revit 模型导入到使用创建室内 3D 数据集工具创建的室内 3D 数据集中。

注:

如果随附的 web 地图已经发布,则 Indoor Viewer 仅支持 3D 模式。 因此,不需要将独立表与 Web 场景一起发布。

使用 Revit 模型创建 3D 场景

可以使用创建室内 3D 数据集工具创建数据集并运行将 BIM 导入室内数据集工具将 Revit 模型的子集导入 Indoors 模型。 将数据导入室内 3D 数据集后,可以选择追加来自 Revit 模型或 2D 数据集的其他数据。

完成以下步骤以使用从 Revit 模型导入的数据为 Indoor Viewer 准备场景:

  1. 启动 ArcGIS Pro,然后打开包含 Indoors 工作空间的工程。
  2. 插入选项卡上,单击新建地图下拉箭头,然后单击新建全球场景
  3. 添加 Levels 图层和任何其他要包含的 2D 图层。
  4. 注:

    如果您已发布用于 Indoor Viewer 的 web 地图,则可以从已发布的要素服务中添加这些图层。

  5. 将以下 3D 要素添加到场景中:Facilities 3D、Units 3D 和 Details 3D。
  6. 注:

    如果 Revit 模型包含外部要素的多个设计选项,或者在 Revit 模型中外部要素未被归类为外部,则 Facilities 3D 要素可能无法满足您的要求。 如果是这样,可以使用下面详述的规则包来创建设施点壳。

  7. 配置 3D 图层的符号系统。
    1. 或者,通过在符号系统窗格中为图层选择白色带边(使用纹理),为 Details 3D 和 Facilities 3D 图层启用边渲染。
  8. 将场景配置为楼层感知型场景。
  9. 如果数据的坐标系不使用公制单位,请通过执行以下操作将数据投影到公制单位的坐标系中:
    1. 运行投影工具以将水平坐标系投影到公制坐标系中,例如 Web 墨卡托(辅助球体)。
    2. 运行调整 3D Z 值工具(其中“调整 Z 值”设置为 0),然后将垂直坐标系的单位从英尺转换为米。
  10. 将 Units 3D、Details 3D 和任何具有室内要素的附加图层配置为楼层感知型图层。
  11. 将 Facilities 3D 图层重命名为 FacilitiesFacilities_Textured

通过将 2D 要素转换为 3D 要素来创建 3D 场景

在为 3D 准备单元之前,请完成以下步骤:

  1. 启动 ArcGIS Pro 并打开包含您所准备的、要用于 Viewer 的 2D 地图
  2. 插入选项卡上,单击新建地图下拉箭头,然后单击新建全球场景
  3. 从已完成的 2D 室内地图中复制所有图层(底图和独立表除外),然后将其粘贴到刚刚创建的场景中。
  4. 将场景配置为楼层感知型场景。

    为场景配置符号系统时,可以使用楼层过滤器在站点、设施点和级别之间进行切换。

    注:

    Viewer 应用程序中使用的场景必须是楼层感知型场景

  5. 请运行创建室内 3D 数据集工具以在 Indoors 地理数据库中创建 3D 数据集。

    输出数据集应与现有 Indoors 要素数据集具有相同的空间参考。

  6. 在场景的内容窗格中,通过取消选中 WorldElevation3D/Terrain3D 图层的复选框来关闭高程表面图层。

为 3D 准备单元

要为 3D 准备单元,请完成以下步骤:

  1. 右键单击 Units 图层,然后单击属性

    将弹出图层属性对话框。

  2. 高程选项卡上,将要素位于参数设置为绝对高度处
  3. 其他要素高程使用以下值参数设置为几何 z 值选项。
  4. 制图偏移参数设置为 0.5,并将垂直单位设置为
    在“图层属性”对话框中配置要素的高程。
  5. 定义查询选项卡上,将定义查询设置为 Where Use Type does not Include the value(s),并指定表示楼梯或电梯单元的字段值。
  6. 单击应用
  7. 单击确定
  8. 运行 3D 图层转要素类工具:
    1. 对于输入要素图层参数,选择 Units 图层。
    2. 对于输出要素类参数,将其命名为 Units_Multipatch 并将其放置在 Indoors 3D 要素数据集中。

      Web 场景中的 Units 图层的名称必须为 Units 3DUnits。 此步骤的输出要素类可以具有不同的名称,但是单元的场景图层必须具有有效名称。

    3. 单击运行
  9. 从场景中移除 Units 3D 或 Units 图层。
  10. 运行追加工具:
    1. 对于输入数据集参数,选择 Units_Multipatch 图层。
    2. 对于目标数据集参数,选择 Units 3D 图层。
    3. 对于字段匹配类型参数,选择使用字段映射协调字段差异选项。
    4. 验证是否针对字段映射参数映射了以下字段:UNIT_IDUSE_TYPENAMENAME_LONGLEVEL_IDAREA_GROSS

      如果这些字段已存在于 Units3D 要素类中,则可以映射附加字段。

    5. 单击运行
  11. 从场景中移除 Units_Multipatch 图层。
  12. 楼层属性设置为 LEVEL_ID,以将 Units 3D 图层设置为楼层感知型图层。
  13. 为 Units 3D 图层启用弹出窗口

    已配置的弹出窗口应包括所有可用属性。

为 3D 准备细节

要为 3D 准备细节,请完成以下步骤:

  1. 右键单击 Details 图层,然后单击属性

    将弹出图层属性对话框。

  2. 高程选项卡上,将要素位于参数设置为绝对高度处
  3. 其他要素高程使用以下值参数设置为几何 z 值选项。
  4. 制图偏移参数设置为 0.5 米。
  5. 定义查询选项卡上,将定义查询设置为 Where Use Type includes the value(s) 并指定相应字段值,这些字段值表示要在场景中显示为已拉伸要素的细节要素,例如墙壁、门、窗户和圆柱。
    注:

    电梯、楼梯和注记要素不应包括在内。

  6. 单击应用
  7. 单击确定关闭图层属性对话框。
  8. 在 Details 图层上设置拉伸
    1. 要素图层选项卡的拉伸组中,为要素拉伸类型参数选择最小高度选项 最小高度
    2. 单击拉伸表达式按钮 拉伸表达式

      随即显示表达式构建器对话框。

    3. 表达式文本框中键入您想要拉伸要素的高度,然后单击确定

      建议将要素拉伸到楼层高度的 50% 左右。 由此可以可视化级别上的细节,而不会被级别全高的墙壁遮挡内部细节的视图。

    4. 单位参数设置为相应测量单位。
  9. 运行 3D 图层转要素类工具:
    1. 对于输入要素图层参数,选择 Details 图层。
    2. 对于输出要素类参数,将其命名为 Details_Multipatch 并将其放置在 Indoor3D 要素数据集中。
  10. 从场景中移除该 Details 线图层。
    注:

    仅保留 Details_Multipatch 和 Details 3D 图层。

分隔细节

可以将细节分隔到多个要素类中,以更好地控制可视化。 您可以将墙壁、门、窗户和其他细节要素分隔到不同的图层中,并针对每个图层使用不同的符号系统。

要将墙壁、门、窗户和其他细节要素分隔到 4 个单独的要素类中,请完成以下步骤:

注:

如果您选择不将细节要素分隔到多个 3D 要素类中,则可以运行追加工具以使用查询将 Details_Multipatch 图层中的细节要素追加到 Details 3D 图层,以包含您希望以 3D 形式显示的所有细节要素。

  1. 运行追加工具。
    1. 对于输入数据集参数,选择 Details_Multipatch 图层。
    2. 对于表达式参数,将查询设置为 Where Use Type Includes the value(s) 并指定表示(非玻璃)墙壁或圆柱的任何字段值。
    3. 对于目标数据集参数,选择 Walls 3D 图层。
    4. 对于字段匹配类型参数,选择使用字段映射协调字段差异选项。

      字段映射随即出现,其中 LEVEL_ID 字段已映射。 包括以下附加映射:

      1. WALL_ID 字段映射到 DETAIL_ID 字段。
      2. WALL_TYPE 字段映射到 USE_TYPE 字段。

      如果这些字段已存在于 Walls3D 要素类中,则可以映射附加字段。

    5. 单击运行
  2. 将 Walls 3D 图层的楼层属性设置为 Level ID 字段以将其设置为楼层感知型图层
  3. 对于 Details_Multipatch 图层,重复步骤 1 和 2 以分隔门的细节。 设置表达式以包含应用于门的 USE_TYPE 字段值,并选择 Doors 3D 图层作为目标数据集。
  4. 对于 Details_Multipatch 图层,重复步骤 1 和 2 以分隔窗户的细节。 设置表达式以包含应用于窗户的 USE_TYPE 字段值,并选择 Windows 3D 图层作为目标数据集。
  5. 对于 Details_Multipatch 图层,重复步骤 1 和 2,以分隔要在 3D 场景中可视化的任何附加要素的细节。 设置表达式以包含表示这些要素的 USE_TYPE 字段值,并选择 Details 3D 图层作为目标数据集。
  6. 或者,可以更改门和窗户要素的透明度:
    1. 选择要更新其透明度的图层。
    2. 要素图层上下文选项卡的效果组中,将透明度参数设置为 70%
  7. 发布之前,请从场景中移除 Details_Multipatch 图层和任何未使用的 3D 图层。

将设施点面转换为 3D 立面

要将设施点面转换为 3D 纹理立面,请完成以下步骤:

  1. 右键单击 Facilities 图层,然后单击属性

    将弹出图层属性对话框。

  2. 高程选项卡上,将要素位于参数设置为绝对高度处
  3. 其他要素高程使用以下值参数设置为几何 z 值选项。
  4. 制图偏移参数设置为 0.5 米,然后单击确定
  5. 内容窗格中单击 Facilities 图层的符号以打开符号系统窗格。

    随即显示格式化面符号窗格。

  6. 单击属性选项卡。
  7. 单击图层按钮 图层,然后选择程序填充
    “格式化面符号”窗格的“属性”选项卡中的描边和填充设置
  8. 单击规则以分配程序规则包 (*.rpk),然后选择 Symbology 文件夹中的 Indoors_TexturedFacade.rpk 文件(包含在 Indoors 产品数据下载中)。
    注:

    您可以使用自己的规则包或带纹理的多面体构建模型来获得更加个性化的外观。 所提供的示例规则将使用“相对高度”和“地面上方高度”属性来创建带纹理的简单 3D 立面,并按楼层进行分割。

    将出现程序填充参数。 将鼠标悬停在每个参数上,以获取有关值将如何更改已完成的建筑物立面外观的信息。

    格式化面符号窗格的属性部分中,将直接从设施点面读取 HEIGHT_RELATIVELEVELS_ABOVE_GROUND 属性,如蓝色数据库连接符号所示:

    “格式化面符号”窗格中的“属性”部分

  9. 显示选项部分可让您自定义屋顶、墙壁和窗户样式和纹理。

  10. 在每个程序填充参数更改后,单击应用以在场景中查看结果。
  11. 几何选项部分中,使用选项简化面,对其进行轻微缓冲或更改窗口大小。
  12. 单击应用以创建最终的 3D 纹理立面模型。
  13. 运行 3D 图层转要素类工具:
    1. 对于输入要素图层参数,选择 Facilities 图层。
    2. 对于输出要素类参数,将其命名为 Facilities_Multipatch 并将其放置在 Indoor3D 要素数据集中。

      随即将 Facilities_Multipatch 图层添加到场景。

  14. 运行追加工具:
    1. 对于输入数据集参数,选择 Facilities_Multipatch 图层。
    2. 对于目标数据集参数,选择 Facilities 3D 图层。
    3. 对于字段匹配类型参数,选择使用字段映射协调字段差异选项。
    4. 验证是否针对字段映射参数映射了以下字段:FACILITY_IDNAMENAME_LONGSITE_ID

      如果这些字段已存在于 Facilities3D 要素类中,则可以映射附加字段。

    5. 单击运行
  15. 将 Facilities 3D 图层重命名为以下名称之一:
    • Facilities
    • Facilities Textured
    • Facilities3D
    • Facilities 3D

    注:
    Web 场景中 Facilities 3D 图层名称必须与上述选项之一匹配。

  16. 从场景中移除 Facilities 面图层和 Facilities_Multipatch 图层。
  17. 为 Facilities Textured 图层启用弹出窗口

    已配置的弹出窗口应包括所有可用属性。

  18. 设置场景的室内图层属性,以将场景设置为楼层感知型场景。
    1. 对于设施点参数,选择 Facilities Textured
    2. 对于楼层参数,选择 Levels

启用边渲染(可选)

ArcGIS Pro 中查看 Indoors 单元和墙壁或将其作为已发布的场景图层进行查看时,该单元和墙壁有时会呈现冲刷后的外观。 要增强多面体要素的边和对比度,可以选择启用边渲染。

  1. 对于包含 Details 和 Units 要素的 3D 图层,如有必要,请在内容窗格中展开图层,然后单击白色符号以打开格式化网格符号窗格。
  2. 单击选项卡并选择白色带边(使用纹理)

现在,您可以共享场景,以将其共享给您的 ArcGIS 组织,以便在 Viewer 应用程序中对其进行使用。