Namespace:
Autodesk.Revit.DB.Visual
Asset
Class
Description:
Represents a connected property of material.
Represents a connected property of material.
Inheritance Hierarchy:
System.Object
Autodesk.Revit.DB.Visual.AssetProperty
Autodesk.Revit.DB.Visual.AssetProperties
Autodesk.Revit.DB.Visual.Asset
System.Object
Autodesk.Revit.DB.Visual.AssetProperty
Autodesk.Revit.DB.Visual.AssetProperties
Autodesk.Revit.DB.Visual.Asset
Examples
public void ReadAsset(Asset asset)
{
// Get the asset name, type and library name.
AssetType type = asset.AssetType;
string name = asset.Name;
string libraryName = asset.LibraryName;
// travel the asset properties in the asset.
for (int idx = 0; idx < asset.Size; idx++)
{
AssetProperty prop = asset.Get(idx);
ReadAssetProperty(prop);
}
}
public void ReadAssetProperty(AssetProperty prop)
{
switch (prop.Type)
{
// Retrieve the value from simple type property is easy.
// for example, retrieve bool property value.
case AssetPropertyType.Boolean:
AssetPropertyBoolean boolProp = prop as AssetPropertyBoolean;
bool propValue = boolProp.Value;
break;
// When you retrieve the value from the data array property,
// you may need to get which value the property stands for.
// for example, the APT_Double44 may be a transform data.
case AssetPropertyType.Double44:
AssetPropertyDoubleArray4d transformProp = prop as AssetPropertyDoubleArray4d;
IList<double> tranformValue = transformProp.GetValueAsDoubles();
break;
// The APT_List contains a list of sub asset properties with same type.
case AssetPropertyType.List:
AssetPropertyList propList = prop as AssetPropertyList;
IList<AssetProperty> subProps = propList.GetValue();
if (subProps.Count == 0)
break;
switch (subProps[0].Type)
{
case AssetPropertyType.Integer:
foreach (AssetProperty subProp in subProps)
{
AssetPropertyInteger intProp = subProp as AssetPropertyInteger;
int intValue = intProp.Value;
}
break;
}
break;
case AssetPropertyType.Asset:
Asset propAsset = prop as Asset;
ReadAsset(propAsset);
break;
default:
break;
}
// Get the connected properties.
// please notice that the information of many texture stores here.
if (prop.NumberOfConnectedProperties == 0)
return;
foreach (AssetProperty connectedProp in prop.GetAllConnectedProperties())
{
// Note: Usually, the connected property is an Asset.
ReadAssetProperty(connectedProp);
}
}