此技术文档介绍了Revit API中的 FieldDomainPointsByUV 类。该类用于获取分析网格中指定UV坐标下的网格点集合。
以下是 FieldDomainPointsByUV 类的主要方法:
FieldDomainPointsByUV(ElementId cellId, UV uvPoint):根据指定的单元格Id和UV坐标点,获取分析网格中与给定UV坐标点最接近的网格点。
FieldDomainPointsByUV(ElementId cellId, IList<UV> uvPoints):根据指定的单元格Id和UV坐标点列表,获取分析网格中与给定UV坐标点最接近的网格点集合。
以下是 FieldDomainPointsByUV 方法中的参数说明:
cellId:ElementId 类型,表示需要获取网格点的单元格Id。
uvPoint:UV 类型,表示需要获取网格点的UV坐标点。
uvPoints:IList<UV> 类型,表示需要获取网格点的UV坐标点列表。
以下是 FieldDomainPointsByUV 方法的返回值说明:
对于 FieldDomainPointsByUV(ElementId cellId, UV uvPoint),返回一个 IList<UV> 类型的网格点集合。
对于 FieldDomainPointsByUV(ElementId cellId, IList<UV> uvPoints),返回一个键值对字典,其中键为UV坐标点,值为与该坐标点最接近的网格点集合,类型为 IList<UV>。
以下是 FieldDomainPointsByUV 类的使用示例:
// 获取单元格Id
ElementId cellId = ...;
// 获取UV坐标点
UV uvPoint = new UV(0.5, 0.5);
// 获取分析网格中与UV坐标点最接近的网格点集合
FieldDomainPointsByUV fieldPoints = new FieldDomainPointsByUV(cellId, uvPoint);
// 遍历网格点集合
foreach (UV point in fieldPoints)
{
// 处理网格点
...
}
// 获取单元格Id
ElementId cellId = ...;
// 获取UV坐标点列表
IList<UV> uvPoints = new List<UV>()
{
new UV(0.5, 0.5),
new UV(0.7, 0.3)
};
// 获取分析网格中与UV坐标点最接近的网格点集合
Dictionary<UV, IList<UV>> fieldPointsDict = new FieldDomainPointsByUV(cellId, uvPoints);
// 遍历键值对字典
foreach (KeyValuePair<UV, IList<UV>> kvp in fieldPointsDict)
{
UV key = kvp.Key; // UV坐标点
IList<UV> value = kvp.Value; // 与该坐标点最接近的网格点集合
// 遍历网格点集合
foreach (UV point in value)
{
// 处理网格点
...
}
}
FieldDomainPointsByUV 类只能用于分析网格,不能用于几何网格。
FieldDomainPointsByUV 方法返回的网格点集合中不包括被过滤掉的网格点,例如被遮挡或无效的点。