Autodesk.Revit.DB.DirectContext3D.DirectContext3DDocumentUtils
是为了在 Revit 的 3D 直接上下文环境中处理文档的类。它提供了一些实用方法,例如将 Revit 三维视图转换为 Direct3D 数据,检查 Direct3D 网格是否位于视图边界内等。
GetPanelGeometry()
方法返回将 Revit 三维视图转换为 Direct3D 所需的 PanelGeometry 对象。
public static PanelGeometry GetPanelGeometry(View3D view)
view
- 要转换为 Direct3D 的 Revit 三维视图。PanelGeometry
- 表示视图的几何形状和材质数据的对象。
IsInDocBounds()
方法检查 Direct3D 网格是否位于视图边界内。
public static bool IsInDocBounds(PanelGeometry panelGeometry, DirectContext3D context, out BoundingBox bbox)
panelGeometry
- 从 GetPanelGeometry()
中获取的 PanelGeometry 对象。context
- 与视图相关联的 Direct3D 上下文。bbox
- 返回的包围盒信息。bool
- 如果网格是在视图边界内的,则为 true
。
View3D view = doc.ActiveView as View3D;
PanelGeometry panelGeometry = DirectContext3DDocumentUtils.GetPanelGeometry(view);
DirectContext3D context = new DirectContext3D(panelGeometry);
BoundingBox bbox;
bool isInDocBounds = DirectContext3DDocumentUtils.IsInDocBounds(panelGeometry, context, out bbox);