Anyone,
When I go through the DataProperties of an element I get all the properties as shown in the properties window.
Sometimes however (for area's and volumes), I get the value 'Unkown', while in the propety value in de properties window is set to a value.
I use the following C# code:
foreach (ModelItem item in Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.SelectedItems)
{
foreach (Autodesk.Navisworks.Api.PropertyCategory o in item.PropertyCategories)
{
foreach (Autodesk.Navisworks.Api.DataProperty p in o.Properties)
{
if (p.Value.ToString() == "Unknown")
{
}
}
}
}
Does anyone have an idea how to get to the original value?
Problem solved:
private object getPropertyValue(Autodesk.Navisworks.Api.DataProperty property)
{
object obj = null;
switch(property.Value.DataType)
{
case VariantDataType.Boolean:
obj = property.Value.ToBoolean();
break;
case VariantDataType.DateTime:
obj = property.Value.ToDateTime();
break;
case VariantDataType.DisplayString:
obj = property.Value.ToDisplayString();
break;
case VariantDataType.Double:
obj = property.Value.ToDouble();
break;
case VariantDataType.DoubleAngle:
obj = property.Value.ToDoubleAngle();
break;
case VariantDataType.DoubleArea:
obj = property.Value.ToDoubleArea();
break;
case VariantDataType.DoubleLength:
obj = property.Value.ToDoubleLength();
break;
case VariantDataType.DoubleVolume:
obj = property.Value.ToDoubleVolume();
break;
case VariantDataType.IdentifierString:
obj = property.Value.ToIdentifierString();
break;
case VariantDataType.Int32:
obj = property.Value.ToInt32();
break;
case VariantDataType.NamedConstant:
obj = property.Value.ToNamedConstant();
break;
case VariantDataType.None:
obj = property.Value.ToString();
break;
case VariantDataType.Point3D:
obj = property.Value.ToString();
break;
}
return obj;
}
Can't find what you're looking for? Ask the community or share your knowledge.