Represents a connected property of material.
Namespace: Autodesk.Revit.DB.VisualAssembly: RevitAPI (in RevitAPI.dll) Version: 21.0.0.0 (21.1.1.109)
Syntax
C# |
---|
public class Asset : AssetProperties |
Visual Basic |
---|
Public Class Asset _ Inherits AssetProperties |
Visual C++ |
---|
public ref class Asset : public AssetProperties |
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); } }

Public Sub ReadAsset(asset As Asset) ' Get the asset name, type and library name. Dim type As AssetType = asset.AssetType Dim name As String = asset.Name Dim libraryName As String = asset.LibraryName ' travel the asset properties in the asset. For idx As Integer = 0 To asset.Size - 1 Dim prop As AssetProperty = asset.Get(idx) ReadAssetProperty(prop) Next End Sub Public Sub ReadAssetProperty(prop As AssetProperty) Select Case prop.Type ' Retrieve the value from simple type property is easy. ' for example, retrieve bool property value. Case AssetPropertyType.Boolean Dim boolProp As AssetPropertyBoolean = TryCast(prop, AssetPropertyBoolean) Dim propValue As Boolean = boolProp.Value Exit Select ' 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 Dim transformProp As AssetPropertyDoubleArray4d = TryCast(prop, AssetPropertyDoubleArray4d) Dim tranformValue As IList(Of Double) = transformProp.GetValueAsDoubles() Exit Select ' The APT_List contains a list of sub asset properties with same type. Case AssetPropertyType.List Dim propList As AssetPropertyList = TryCast(prop, AssetPropertyList) Dim subProps As IList(Of AssetProperty) = propList.GetValue() If subProps.Count = 0 Then Exit Select End If Select Case subProps(0).Type Case AssetPropertyType.Integer For Each subProp As AssetProperty In subProps Dim intProp As AssetPropertyInteger = TryCast(subProp, AssetPropertyInteger) Dim intValue As Integer = intProp.Value Next Exit Select End Select Exit Select Case AssetPropertyType.Asset Dim propAsset As Asset = TryCast(prop, Asset) ReadAsset(propAsset) Exit Select Case Else Exit Select End Select ' Get the connected properties. ' please notice that the information of many texture stores here. If prop.NumberOfConnectedProperties = 0 Then Return End If For Each connectedProp As AssetProperty In prop.GetAllConnectedProperties() ' Note: Usually, the connected property is an Asset. ReadAssetProperty(connectedProp) Next End Sub
Inheritance Hierarchy
System..::..Object
Autodesk.Revit.DB.Visual..::..AssetProperty
Autodesk.Revit.DB.Visual..::..AssetProperties
Autodesk.Revit.DB.Visual..::..Asset
Autodesk.Revit.DB.Visual..::..AssetProperty
Autodesk.Revit.DB.Visual..::..AssetProperties
Autodesk.Revit.DB.Visual..::..Asset