Autodesk.Revit.DB.DirectShapeTypeUserAssignability 是 Revit API 中的一个类,用于设置 DirectShape 的类型是否可由用户指定。
Inherit:获取一个 DirectShapeTypeUserAssignability 对象,其类型继承自父 DirectShape。
Default:获取一个 DirectShapeTypeUserAssignability 对象,其类型默认为不可由用户指定。
UserAssignable:获取一个 DirectShapeTypeUserAssignability 对象,其类型可由用户指定。
// 创建一个新的 DirectShapeTypeUserAssignability 对象
DirectShapeTypeUserAssignability userAssignability = new DirectShapeTypeUserAssignability();
// 将 DirectShape 的类型设置为不可由用户指定
userAssignability = DirectShapeTypeUserAssignability.Default;
// 将 DirectShape 的类型设置为可由用户指定
userAssignability = DirectShapeTypeUserAssignability.UserAssignable;
以下示例设置 DirectShape 对象的类型为不可由用户指定:
// 获取当前文档
Document doc = commandData.Application.ActiveUIDocument.Document;
// 创建一个名为“myDirectShape”的 DirectShape 对象
DirectShape directShape = DirectShape.CreateElement(doc, new ElementId(BuiltInCategory.OST_GenericModel));
// 获取 DirectShape 对象的类型
DirectShapeType directShapeType = directShape.GetTypeId().GetElement(doc) as DirectShapeType;
// 设置 DirectShape 对象的类型为不可由用户指定
directShapeType.UserAssignability = DirectShapeTypeUserAssignability.Default;
该类仅适用于 DirectShape 对象,其他元素类型可能无法使用。
在设置 DirectShape 对象的类型时,如果类型为不可由用户指定,则只能使用已经定义的类型。如果类型为可由用户指定,则可以在创建 DirectShape 对象时指定类型。
在使用该类时,应注意 DirectShape 的类型和类型可由用户指定的设置。设置不当可能会导致 Revit 中元素的显示或其他问题。