思路:
主要参考的是这一篇文章Revit二次开发第六回:根据模型线生成扫略放样实体
- 选择一条模型线
- 通过打开一个族模板,打开一个族文件
- 在族文件中载入轮廓族,并从中获取到拉伸要用到的轮廓
- 把项目中的模型线转化到族文件中同样的位置
- 将族文件的模型线设置为拉伸路径
- 通过familyDoc.FamilyCreate.NewSweep()方法来创建放样
- 把族文件载入到项目文件中,激活该族并放置到指定位置
- 重复上述过程做一个空心放样用来切割的族,并载入到项目文件中。在项目文件中通过InstanceVoidCutUtils.AddInstanceVoidCut()实现切割,但本人在此步发现一个问题,暂时未找到解决方案,会在文末进行详细阐述。
代码:
private FamilySymbol createSweepFamilySymbol(ExternalCommandData commandData, ModelLine modelLine, string filePath, bool v)
{
Document revitDoc = commandData.Application.ActiveUIDocument.Document; //取得文档
Application revitApp = commandData.Application.Application; //取得应用程序
UIDocument uiDoc = commandData.Application.ActiveUIDocument; //取得当前活动文档
//创建一个族文档
Document familyDoc = revitDoc.Application.NewFamilyDocument(@"C:\ProgramData\Autodesk\RVT 2020\Family Templates\Chinese\公制常规模型.rft");
FamilySymbol profileFamilySymbol;
//在族文件中载入轮廓族
using (Transaction transaction = new Transaction(familyDoc))
{
transaction.Start("载入族");
string ProfilePath = filePath;//轮廓族的路径来这里输入一下
boo