Skip to content

AssetProperty.GetSingleConnectedAsset

Public Class

Gets the single connected asset attached to this asset property, if it exists.

Namespace: Autodesk.Revit.DB.Visual

Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

Syntax

public Asset GetSingleConnectedAsset()

Return Value

Asset
The connected asset, or . if there is no connected asset.

Exceptions

Exception

Condition


InvalidOperationException

Asset is connected to more than one asset.


Remarks

Throws if there is more than one connected asset.

Example

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); // returns an editable copy of the appearance asset
AssetProperty bumpMapProperty = editableAsset.FindByName("generic_bump_map");
// Find the connected asset (with a shortcut to get the only one)
Asset connectedAsset = bumpMapProperty.GetSingleConnectedAsset();
if (connectedAsset == null)
{
// Add a new default connected asset
bumpMapProperty.AddConnectedAsset("UnifiedBitmap");
connectedAsset = bumpMapProperty.GetSingleConnectedAsset();
}
if (connectedAsset != null)
{
// Find the target asset property
AssetPropertyString bumpmapBitmapProperty = connectedAsset.FindByName("unifiedbitmap_Bitmap") as AssetPropertyString;
if (bumpmapBitmapProperty.IsValidValue(bumpmapImageFilepath))
bumpmapBitmapProperty.Value = bumpmapImageFilepath;
}
editScope.Commit(true);
}
t.Commit();
}
}