本文介绍Datasmith如何将场景从Autodesk Revit导入虚幻编辑器。此流程遵循Datasmith概述和关于Datasmith导入流程中介绍的基本流程,但增加了一些专用于Revit的特殊行为。如果你计划使用Datasmith将场景从Revit导入虚幻编辑器,阅读本页可帮助你了解场景的转换流程以及如何在虚幻编辑器中处理结果。


Revit工作流程
Datasmith为Revit使用导出插件工作流程。这意味着要使用Datasmith将Revit内容导入虚幻引擎,你需要:
-
安装用于Revit的插件。请参阅下文中的 安装说明 小节。
-
将你的Revit内容导出到
*.udatasmith
文件。请参阅从Revit导出Datasmith内容。你也可以批量导出 -
为你的项目启用 导入器(Importers)> Datasmith导入器(Datasmith Importer) 插件(如果尚未启用)。
-
使用虚幻编辑器工具栏中的 Datasmith 导入器导入
.udatasmith
文件。请参阅将Datasmith内容导入到虚幻引擎。
安装说明
在导出Revit内容之前,你必须从Datasmith导出插件页面下载并安装 Datasmith Exporter for Revit 插件。
要查看插件支持的Revit版本,请参阅Datasmith支持的软件和文件类型。
我们鼓励你积极与组织内外的人员共享Datasmith Exporter插件的下载链接。但需要注意的是,你不得自行分发Datasmith Exporter插件的安装程序。
在安装Datasmith Exporter for Revit插件之前,请确保:
-
Revit未运行。
-
你已下载适用于所用虚幻引擎版本的导出器插件安装程序。
-
你已卸载所有以前版本的Datasmith Exporter for Revit插件。
下载安装程序后,双击将其打开,然后按照屏幕上的说明进行操作。
在安装导出器插件后启动Revit时,你可能会看到以下警告:"无法验证此加载项的发布者。你希望我做什么?"("The publisher of this add-in could not be verified. What do you want to do?") 单击 始终加载(Always Load) 以确认你希望Datasmith Exporter插件在每次启动Revit时都可用。
同任何其他Windows应用程序一样,如果需要卸载Datasmith Exporter for Revit插件,你可以从 控制面板 执行此操作。
控制被导出的内容
必须在Revit中选择一个活跃的3D视图才能使用Datasmith Exporter插件导出场景。该3D视图的可视性设置将定义来自Revit文件的哪些元素将包含在导出的 .udatasmith
文件中。
可以使用Revit文件中已有的任何3D视图。然而如果希望完全控制导入虚幻引擎的对象,我们建议在Revit中设置一个新的3D视图,并设置此视图只显示实时展示中所需要的对象。
Revit提供了诸多工具和技术来控制3D视图中对象的可视性。举例而言:
-
可使用 图形(Graphics) > 可视性/图形覆盖(Visibility/Graphics Overrides) 来控制关卡中不同对象和对象类目的可视性。
-
可使用一个截断体积(Section Box)来剪切导出的几何体。只有截断体积中的对象将被导出到虚幻引擎。注意:当一个对象跨过截断体积的边界时(如下图中的墙壁、地板和家具),其几何体将被截断。在虚幻引擎中,代表导出对象的静态网格体资源只包含处于截断体积中的几何体。
- 将遵守Revit中的 临时隐藏和隔离(Temporary Hide and Isolate) 设置。
- 只有当前3D视图中可见的几何体对象将被导出。非几何对象将被无视。
Datasmith Exporter遵守哪些对象显示、哪些对象隐藏的选择,但其不会考虑控制3D视图在Revit视口中绘制方式的其他设置。举例而言,其不会考虑3D视图的 图像(Graphics) > 图像显示选项(Graphic Display Options) 设置(真实与阴影模式显示、投射阴影等)或 相机(Camera) > 渲染设置(Rendering Settings)(草图与高质量设置、光照模式等)。
欲知控制Revit 3D视图中可视性的更多信息,还可参阅Revit帮助部分中的项目视图中的可见性和图形显示。
几何体
总体而言,可在Revit场景中单独选择的每个元素都将作为单独的静态网格体资源转译到虚幻引擎中。部分元素由更小的部分组成时(如轨道),其可能会被进一步拆分为更小的静态网格体。
在所有情况中,每个静态网格体资源的几何体被设为匹配导入文件时Revit对象的尺寸。参数设置和约束不会转入虚幻引擎。举例而言,在虚幻编辑器中上下移动一处地面时,不会拉伸或收缩墙壁高度来匹配Revit中的新位置。
实例化
如果两个对象属于相同族系,且如果其拥有完全相同的参数值,则两个对象都将在Datasmith场景中呈现为同一静态网格体资源的实例。
曲面细分
Datasmith依赖Revit的内置曲面细分服务从场景几何体创建三角形网格体。在大多数情况下,这会产生足够的几何体供在虚幻引擎中使用。但若你发现这些表面在项目中会带来问题,可尝试使用Unreal编辑器提供的工具简化这些网格体,例如代理几何体工具。
你还可以在 Datasmith导出设置 中手动指定Revit创建的网格体的曲面细分级别。这些级别由Revit API定义。

曲面细分的默认等级是8。这会生成与Revit FBX导出器相同的网格体分辨率:
Level 2 | Level 8 |
链接模型
若Revit场景包含链接模型,即对其他Revit文件的引用,Datasmith将尝试用Revit文件中保存的路径查找计算机上的链接文件。Datasmith包括它能够在Datasmith场景中找到的所有链接文件的数据,同时Datasmith场景也是它在虚幻引擎中创建的。
材质和纹理
Datasmith将针对Revit场景中每种不同类型的表面在虚幻引擎项目中新建材质资源,并放置在Datasmith场景资源旁的 Materials 文件夹中。这些材质的目标是遵守设置表面在Revit中查看的方式,并公开一套完全复刻Revit中所使用属性的属性。
Revit | 虚幻 |
Datasmith当前支持将漫反射贴图和颜色、透明度、剪切和凹凸设置从Revit转译到其生成的虚幻引擎材质中。
在虚幻编辑器中修改材质的方法:
- 在 内容浏览器 中对其进行双击。或在使用需要修改材质的关卡中选择一个actor,然后在细节面板中双击材质。
- 如上图所示,材质编辑器将打开,可在细节面板顶部的 参数分组 部分中修改这些参数。也可修改虚幻渲染器公开的其他内置参数。
- 如需覆盖任意属性的默认值,首先勾选其命名左边的框,在材质中激活属性。然后设置希望属性使用的值。
每个这些资源均为材质实例,其父项为内置到Datasmith插件中的 RevitMaster 材质。可打开这个父材质来查看每个在材质实例中公开的属性在材质图表中连接的方式。
纹理和UV包裹
Datasmith将把Revit材质中使用的纹理导入到资源中,然后将其放置在Datasmith场景资源旁边的Textures文件夹中。
使用纹理资源的每个材质都会提供对Revit纹理编辑器的相似控制,以便控制纹理贴图在使用材质的3D对象表面上的应用方式。

- Revit中的 位置(Position) > 偏移(Offset) 由每种贴图的 UVOffsetX 和 UVOffsetY 设置建模。
- Revit中的 位置(Position) > 旋转(Rotation) 由每种贴图的 UVWAngle 设置建模。
- Revit中的 标度 值基于真实世界维度,将转换为虚幻引擎材质中的一个标度乘数。增加这些缩放值的绝对值时,纹理在对象上将变小。
Datasmith并不转换过程化纹理、例如棋盘、噪点、平铺等。
构建Datasmith场景层级
Datasmith Exporter插件在Datasmith场景中创建了一个父和子actor的层级,以便反映Revit中场景的整体组织。其目的是根据在用于Revit的概念来组织虚幻引擎关卡中的actor,以便于查找和操纵对象。
此场景层级根据以下规则构建:
-
Revit中的每个 关卡 ——地面、Level 1、Level 2等均由Datasmith场景层级中的一个单独actor来反映。
-
在每个关卡中,可成为Revit中其他场景元素 宿主 的任意对象将变为其所拥有对象的父项。
-
在代表Revit关卡和宿主的父actor中可找到代表每个几何对象的静态网格体actor。
举例而言,名为Level 1的actor包含代表每面墙的一个actor。而每个这些actor又由另一个父actor所代表(其拥有墙壁所拥有的每个几何对象的一个子项,即为每扇门、窗或墙壁部分)。
-
对于大多数"复合"Revit对象,例如幕墙或栏杆,场景层级仅包含一个展示复合对象的Actor。该Actor包含构成复合元素的每个子对象的静态网格体组件。
例如,Revit中的幕墙通常作为单个Actor呈现在虚幻引擎中。对于构成幕墙的每个竖框和每个面板,该Actor都有一个单独的静态网格体组件。
光源
Datasmith从Revit场景将光源导入虚幻引擎,维持为其强度设置的物理单位。
相机
从Revit导入一个3D视图时,Datasmith可在虚幻编辑器关卡中创建一个单一的 CineCameraActor。其将以相似的视野取代此相机在Revit 3D视图中的相机位置和朝向。如果在关卡视口或 世界大纲视图 中选择此CineCameraActor,其视口的预览应与导出 .udatasmith
文件时Revit 3D视图的裁剪区域高度匹配。
Datasmith不会处理Revit中可用的部分相机概念,包括正交投射模式和透视矫正(如倾斜、移位和裁剪区)。
为实现最佳效果:
- 将3D视图的 相机(Camera) > 投射模式(Projection Mode) 设置设为 透视。
- 设置Revit中3D视图的裁剪区域,使其聚焦于希望相机在虚幻引擎中拥有的视图。
- 确保Revit中的相机目标点居中于裁剪区域中。将相机显示在其他平面和立面视图中即可进行验证。
如透视发生移位,虚幻引擎中的结果则不会如预期般显示。
举例而言,下方的3D视图拥有带居中剪切区的透视相机,其将顺利平移:
然而,以下3D区域的裁剪区域为手动调整,将透视区域的一个边缘不均匀地向目标点移动。这样的平移不会顺畅。
类别
包含场景中至少一个对象的每个Revit类目将作为单独的层转入虚幻编辑器中。

可使用虚幻编辑器中的这些层来显示和隐藏类目,或查看和选择指定到它们的对象。
注意:由Revit SDK提供给导入器的信息不会固定将每个场景对象链接到一个类目。未在Revit中指定类目的对象将不会指定到虚幻编辑器中的任意层。
元数据
Datasmith导出关于Revit对象的元数据,并将该元数据附加到代表虚幻引擎中每个Revit对象的Actor。
将用于虚幻引擎中创建的运行时体验的多数元数据都将导入为Datasmith元数据。这包含在Revit中每个对象上的实例属性,以及为非空的类型属性。欲知导入属性的细节以及如何在编辑器资源准备脚本和运行时游戏性脚本中对其进行访问,请参见使用Datasmith元数据。
部分更多其他技术内部信息将附加到使用组件标签的每个Actor。你可能会发现此信息适用于识别Actor,使用蓝图或Python脚本来自动化虚幻编辑器中的数据准备时尤为如此。举例而言:
- Revit.Instance.Depth. - Revit场景层级中对象族系实例或族系符号的深度。
- Revit.Instance.Id. - Revit文档中对象族系实例或族系符号的ID。
- Revit.Host.Id. - 对象的族系实例被添加宿主后,此值将在Revit文档中给定族系实例宿主的ID。

在Revit的Datasmith工具栏的 设置 菜单中,你可以对需要通过 .udatasmith
文件或Direct Link导出的元数据设置筛选标准。这有助于你减少需要导出的数据量,从而优化导出性能和导出的Datasmith场景的大小。

元数据导出设置。
使用 添加组(Add Group) 和 移除选中项(Remove Selected) 按钮来添加或删除需要导出的Datasmith场景中的元数据。
注意:
-
元数据类目由Revit定义,无法改动。
-
此筛选器会影响常规导出(即作为
.udatasmnith
文件导出)和Direct Link导出。 -
你在导出筛选器中添加的类别列表会被保存在Revit文件内。
-
如果此列表完全空白,则 所有 元数据都会被导出。
RPC对象
Datasmith将Revit场景中丰富真实图形(RPC)对象引入虚幻引擎。对于Revit场景中每种类型的RPC对象,Datasmith将Revit中可见的几何体导入新的静态网格资源。对于在Revit场景中放置的每种RPC对象类型,Datasmith在虚幻引擎关卡创建新的静态网格体Actor,且其位置和方向与3D空间中相同。

查找已指定 Revit.RPC 组件标签的actor即可在虚幻引擎关卡中找到这些RPC对象:

若想要用一种更适合3D实时可视化的自动化方式来替代Revit中使用的占位符随从对象,这将非常有用。
测量点和基准点
若Revit场景包含基准点或测量点,Datasmith会将这些点导入虚幻引擎关卡,同时利用不包含可见几何体的普通Actor加以表示。它在这些Actor上记录了Datasmith元数据中的相关测量点和基准点数据:
![]() |
![]() |
---|---|
基准点 | 测量点 |
另请参见上述元数据和使用Datasmith元数据。
本文使用的所有场景和模型都由Turbosquid提供。