Gets the single connected asset attached to this asset property, if it exists.
Namespace: Autodesk.Revit.DB.Visual
Assembly: RevitAPI (in RevitAPI.dll) Version: 26.1.0.0 (26.1.0.34)
Syntax
C#
public Asset GetSingleConnectedAsset()
Return Value
AssetThe connected asset, or nullptr 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
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); // 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(); } }
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) ' returns an editable copy of the appearance asset Dim bumpMapProperty As AssetProperty = editableAsset.FindByName("generic_bump_map") ' Find the connected asset (with a shortcut to get the only one) Dim connectedAsset As Asset = bumpMapProperty.GetSingleConnectedAsset() If connectedAsset Is Nothing Then ' Add a new default connected asset bumpMapProperty.AddConnectedAsset("UnifiedBitmap") connectedAsset = bumpMapProperty.GetSingleConnectedAsset() End If If connectedAsset IsNot Nothing Then ' Find the target asset property 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