public static void LinkNestedFamilyParameterToHostFamilyParameter(
Document hostFamilyDocument,
FamilyInstance nestedFamilyInstance,
string nestedFamilyParameterName,
string hostFamilyParameterNameToLink)
{
// Following good SOA practices, verify the incoming
// parameters before attempting to proceed.
ValidateFamilyDocument( hostFamilyDocument ); // Throws an exception if is not valid family doc
if( nestedFamilyInstance == null )
{
throw new ArgumentNullException(
"nestedFamilyInstance" );
}
if( string.IsNullOrEmpty( nestedFamilyParameterName ) )
{
throw new ArgumentNullException(
"nestedFamilyParameterName" );
}
if( string.IsNullOrEmpty( hostFamilyParameterNameToLink ) )
{
throw new ArgumentNullException(
"hostFamilyParameterNameToLink" );
}
Parameter oNestedFamilyParameter
= GetFamilyParameter( nestedFamilyInstance,
nestedFamilyParameterName );
if( oNestedFamilyParameter == null )
{
throw new Exception( "Parameter '"
+ nestedFamilyParameterName
+ "' was not found on the nested family '"
+ nestedFamilyInstance.Symbol.Name + "'" );
}
FamilyParameter oHostFamilyParameter
= hostFamilyDocument.FamilyManager.get_Parameter(
hostFamilyParameterNameToLink );
if( oHostFamilyParameter == null )
{
throw new Exception( "Parameter '"
+ hostFamilyParameterNameToLink
+ "' was not found on the host family." );
}
hostFamilyDocument.FamilyManager
.AssociateElementParameterToFamilyParameter(
oNestedFamilyParameter, oHostFamilyParameter );
}