在Family中调用Set(FamilyParameter)的时候,会抛出异常InvalidOperationException: There is no current type,例如下面的代码:
var para = RevitDoc.FamilyManager.AddParameter("Length", BuiltInParameterGroup.INVALID, ParameterType.Length, false);
RevitDoc.FamilyManager.Set(para, 123.1);
在没有默认类型的时候,我们是依然可以调用AddParameter的。
但是却不能设置参数的值,因为没有类型的话,参数的值就没有意义嘛。
所以,这里我们需要创建一个新的,然后再设置Parameter。在此之前,可以使用FamilyManager.CurrentType是否为空来判断有没有默认的类型。
if (familyMgr.CurrentType == null)
familyMgr.NewType("A new type");
var para = familyMgr.AddParameter("Length", BuiltInParameterGroup.INVALID, ParameterType.Length, false);
RevitDoc.FamilyManager.Set(para, 123.1);