Autodesk.Revit.DB.Analysis.SpatialFieldManager是Revit API中的一个类。其作用是管理建筑模型中的空间分析数据。通过该类,开发者可以创建、编辑和查询在空间分析场中进行的分析操作。空间分析场是针对建筑模型中特定区域的有限状态分析范围。
以下代码演示了如何使用Autodesk.Revit.DB.Analysis.SpatialFieldManager类创建并编辑一个名为“spatialField”的空间分析场:
// 获取当前文档的SpatialFieldManager
SpatialFieldManager sfm = new SpatialFieldManager(doc);
// 创建一个名为“spatialField”的空间分析场
SpatialField sp = sfm.CreateNewSpatialField(true);
// 设置空间分析场的属性
sp.FieldDomainPoints = new FieldDomainPointsByXYZ(new XYZ(0,0,0), new XYZ(100,100,100));
sp.SetFieldValue(new XYZ(50,50,50), 100);
// 缓存并显示结果
sfm.UpdateSpatialFieldCalculations();
doc.Regenerate();
// 获取结果并输出
SpatialFieldResults sfr = sfm.GetSpatialFieldResults("spatialField");
SpatialFieldValues sfv = sfr.GetSpatialFieldValues(new FieldDomainPointsByXYZ(new XYZ(0,0,0), new XYZ(100,100,100)));
double valueInCenter = sfv.get_Item(new XYZ(50,50,50));
TaskDialog.Show("Spatial Field Value in Center", valueInCenter.ToString());