Gets the single connected asset attached to this asset property, if it exists.
Namespace: Autodesk.Revit.DB.VisualAssembly: RevitAPI (in RevitAPI.dll) Version: 26.4.0.0 (26.4.0.0)
Syntax
C#
public Asset GetSingleConnectedAsset()
Return Value
Asset
The connected asset, or
null if there is no connected asset.
Exceptions
Remarks
Throws if there is more than one connected asset.
Example
C#
private void SetBumpmapBitmap(Material material, String bumpmapImageFilepath)
{
ElementId appearanceAssetId = material.AppearanceAssetId;
AppearanceAssetElement assetElem = material.Document.GetElement(appearanceAssetId) as AppearanceAssetElement;
using (Transaction t = new Transaction(material.Document, "Change material bumpmap bitmap"))
{
t.Start();
using (AppearanceAssetEditScope editScope = new AppearanceAssetEditScope(assetElem.Document))
{
Asset editableAsset = editScope.Start(assetElem.Id);
AssetProperty bumpMapProperty = editableAsset.FindByName("generic_bump_map");
Asset connectedAsset = bumpMapProperty.GetSingleConnectedAsset();
if (connectedAsset == null)
{
bumpMapProperty.AddConnectedAsset("UnifiedBitmap");
connectedAsset = bumpMapProperty.GetSingleConnectedAsset();
}
if (connectedAsset != null)
{
AssetPropertyString bumpmapBitmapProperty = connectedAsset.FindByName("unifiedbitmap_Bitmap") as AssetPropertyString;
if (bumpmapBitmapProperty.IsValidValue(bumpmapImageFilepath))
bumpmapBitmapProperty.Value = bumpmapImageFilepath;
}
editScope.Commit(true);
}
t.Commit();
}
}
VB
Private Sub SetBumpmapBitmap(material As Material, bumpmapImageFilepath As [String])
Dim appearanceAssetId As ElementId = material.AppearanceAssetId
Dim assetElem As AppearanceAssetElement = TryCast(material.Document.GetElement(appearanceAssetId), AppearanceAssetElement)
Using t As New Transaction(material.Document, "Change material bumpmap bitmap")
t.Start()
Using editScope As New AppearanceAssetEditScope(assetElem.Document)
Dim editableAsset As Asset = editScope.Start(assetElem.Id)
Dim bumpMapProperty As AssetProperty = editableAsset.FindByName("generic_bump_map")
Dim connectedAsset As Asset = bumpMapProperty.GetSingleConnectedAsset()
If connectedAsset Is Nothing Then
bumpMapProperty.AddConnectedAsset("UnifiedBitmap")
connectedAsset = bumpMapProperty.GetSingleConnectedAsset()
End If
If connectedAsset IsNot Nothing Then
Dim bumpmapBitmapProperty As AssetPropertyString = TryCast(connectedAsset.FindByName("unifiedbitmap_Bitmap"), AssetPropertyString)
If bumpmapBitmapProperty.IsValidValue(bumpmapImageFilepath) Then
bumpmapBitmapProperty.Value = bumpmapImageFilepath
End If
End If
editScope.Commit(True)
End Using
t.Commit()
End Using
End Sub
See Also
Reference