public static void UpdateCO2eVisualization(SpatialFieldManager sfm, Element element)
{
try
{
logger.InfoFormat("Adding CO2e Analysis for element: {0}", element.Name);
double CO2eForElement = 0;
if (element.ParametersMap.Contains("CO2e"))
{
CO2eForElement = element.ParametersMap.get_Item("CO2e").AsDouble();
}
int count = 0;
foreach (Face face in GetFaces(element))
{
var idx = sfm.AddSpatialFieldPrimitive(face.Reference);
IList<UV> uvPts = new List<UV>();
IList<ValueAtPoint> valList = new List<ValueAtPoint>();
var bb = face.GetBoundingBox();
AddMeasurement(CO2eForElement, bb.Min.U, bb.Min.V, uvPts, valList);
AddMeasurement(CO2eForElement, bb.Min.U, bb.Max.V, uvPts, valList);
AddMeasurement(CO2eForElement, bb.Max.U, bb.Max.V, uvPts, valList);
AddMeasurement(CO2eForElement, bb.Max.U, bb.Min.V, uvPts, valList);
logger.DebugFormat("elementId: {0}, face: {1}, spf idx: {2}, bounding box: {3},{4},{5},{6}", element.Id.IntegerValue, count, idx, bb.Min.U, bb.Min.V, bb.Max.U, bb.Max.V);
var pnts = new FieldDomainPointsByUV(uvPts);
var vals = new FieldValues(valList);
var resultSchema1 = new AnalysisResultSchema("CO2e schema", "AMEE CO2e schema");
sfm.UpdateSpatialFieldPrimitive(idx, pnts, vals, GetFirstRegisteredResult(sfm, resultSchema1));
count++;
}
}
catch (Exception e)
{
logger.Error(e);
}
}