Autodesk.Revit.DB.ViewportPositioning
是一个 Revit API 类,它用于确定视口在布局或单元格中的位置和方向。该类与视图族和楼层平面视图相关联。
通过设置宿主和位置来确定视口在宿主中的位置和方向。如果视口未成功定位,将抛出 Autodesk.Revit.Exceptions.ArgumentException
。
public void SetHostAndPosition(Autodesk.Revit.DB.ElementId hostId, Autodesk.Revit.DB.BoundingBoxUV boundingBox, Autodesk.Revit.DB.View view)
参数:
hostId
,类型为 Autodesk.Revit.DB.ElementId
,表示视口要放置的宿主的 ID。boundingBox
,类型为 Autodesk.Revit.DB.BoundingBoxUV
,表示视口边界框的范围。view
,类型为 Autodesk.Revit.DB.View
,表示当前视图。将视口定位于其宿主中的指定位置,并指定视口的方向。如果视口未成功定位,将抛出 Autodesk.Revit.Exceptions.ArgumentException
。
public void SetOrientation(Autodesk.Revit.DB.XYZ position, Autodesk.Revit.DB.XYZ forwardDirection, Autodesk.Revit.DB.XYZ upDirection)
参数:
position
,类型为 Autodesk.Revit.DB.XYZ
,表示视口在宿主中的位置。forwardDirection
,类型为 Autodesk.Revit.DB.XYZ
,表示视口前方的方向向量。upDirection
,类型为 Autodesk.Revit.DB.XYZ
,表示视口上方的方向向量。// 定义视口参数
var viewportPositioning = new Autodesk.Revit.DB.ViewportPositioning();
var boundingBox = new Autodesk.Revit.DB.BoundingBoxUV(new Autodesk.Revit.DB.UV(-50, -50), new Autodesk.Revit.DB.UV(50, 50));
// 将视口定位于布局中指定的 ID 元素的左下角
viewportPositioning.SetHostAndPosition(new Autodesk.Revit.DB.ElementId(layoutId), boundingBox, view);
var position = new Autodesk.Revit.DB.XYZ(-50, -50, 0);
var forwardDirection = new Autodesk.Revit.DB.XYZ(1, 0, 0);
var upDirection = new Autodesk.Revit.DB.XYZ(0, 0, 1);
viewportPositioning.SetOrientation(position, forwardDirection, upDirection);
// 将视口添加到布局中
var viewport = Autodesk.Revit.DB.Viewport.Create(doc, sheetId, view.Id, viewportScheduleId, viewportPositioning);
Autodesk.Revit.DB.ViewportPositioning
类定义了在布局或单元格中定位视口所需的方法。通过使用 SetHostAndPosition()
和 SetOrientation()
方法,可以确定视口在宿主中的位置和方向。