Overview
A quantity is a derived measure of a model object's physical property. To get quantities of an object use the IQuantityContainer interface, available via the IModelObject::GetQuantities() and ILayer::GetQuantities() methods. A quantity can be obtained via IQuantityContainer::GetQuantity(). To check if a quantity is available for an object use the IQuantityContainer::HasQuantity() method.
How to obtain the quantities
The code below demonstrates how to obtain the net volume quantity from an arbitrary model object. The collection of model objects can be received from IModel interface.
C++
void obtainQuantityContainer(Renga::IModelObjectPtr pModelObject)
{
Renga::IQuantityContainerPtr pQuantityContainer = pModelObject->GetQuantities();
Renga::IQuantityPtr pQuantity = pQuantityContainer->Get(Renga::QuantityIds::NetVolume);
if (pQuantity)
{
if (pQuantity->HasValue == VARIANT_TRUE)
{
const double volume = pQuantity->AsVolume(Renga::VolumeUnit_Meters3);
}
else
{
}
}
else
{
}
}
C#
public void obtainQuantityContainer(Renga.IModelObject modelObject)
{
Renga.IQuantityContainer quantityContainer = modelObject.GetQuantities();
Renga.IQuantity quantity = quantityContainer.Get(Renga.QuantityIds.NetVolume);
if (quantity != null)
{
if (quantity.Type == Renga.QuantityType.QuantityType_Volume)
{
double volume = quantity.AsVolume(Renga.VolumeUnit.VolumeUnit_Meters3);
}
else
{
}
}
else
{
}
}
See also
Related samples