此技术文档介绍了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
方法返回的网格点集合中不包括被过滤掉的网格点,例如被遮挡或无效的点。