Revit手工创建族

手工创建族
1.画两个参考平面。
图3001
2.点击族类型,添加参数。

图3002,3003
3.添加类型,为类型赋值。
3004
4.创建拉伸截面,完成后,可以三维查看。
3005
5.创建对齐,把拉伸曲线与参考平面对齐锁定,以便使用参数驱动。

3006
6.切换到前视图Front把上下底面也对齐锁定。
3007
7.创建标注,是在两个参照平面之间创建。
3008
8.参数绑定
3009
创建族最佳步骤:




from: http://revit.5d6d.com/thread-1372-1-1.html

您想要使用最佳实践来创建模板。

下列建议并不十分全面,但是其中很多建议可以帮助您提高效率和性能:

创建一个新的空白草图视图,用于打开和关闭项目。在保存并关闭您的项目前,请打开此视图并关闭其它打开的视图。这可以避免在启动时加载不使用的视图,释放RAM内存,提高速度。

不要向模板中加载过多的族。仅加载项目常用的族(例如,您最常用的窗与门),以此减小项目。

对于所有在您的项目中使用的族,设置其所有参数,如果您的公司使用注释记号,请为所有族定义注释记号。

不要包含过多墙类型。仅包括5-6种您的公司常用的类型即可。包括一些普通墙体,用于帮助概念设计。 

为包括的所有墙体类型设置参数(例如,类型标记、防火等级等)。

设置一些您可以反复使用的图纸(例如一组标题图纸)。.通常,这类图纸在每个项目中都是一样的,所以这样做可以为图片、明细表等留下一些空间。同样的方法可以用于详图。 

创建视图模板,在创建新的视图时,为您的项目设置标准。

加载新的标准标题栏。包括一或两个标题栏,用于效果图,加载标准施工文档标题栏。包括面向附录的标准标题栏。 

设置您的标准明细表。使用所有您使用的标准创建房间、门、窗与五金器具明细表。获得您可以在项目中随时使用的明细表。 

创建一些面向标准细节的草图视图,如您会经常在项目中使用的门或窗的细节图。

如果您经常进行翻新项目,设置阶段并进行图形替换。不要让用户随后做这些工作。 

使用文件菜单中的传递项目标准命令,在模板间比较和导入图元。 

在开始新项目前,升级您的模板为最新的Revit格式。
<think>好的,用户想了解如何在Revit后台通过编程方式创建并通过代码载入项目。首先,我需要回忆一下Revit API的相关知识。根据用户提供的引用,特别是引用[3],里面提到了编辑(EditFamily)和载入(LoadFamily)的方法,以及需要实现IFamilyLoadOptions接口来覆盖现有的实例。 首先,创建自定义需要明确的类型,用户提到的是构建,因为系统无法自由编辑。所以步骤应该是先创建文档,然后在其中添加参数和几何形状。引用[1]提到修改参数是二次开发的基础,所以在创建时也需要设置参数。 接下来,载入到项目中需要使用LoadFamily方法,并且可能需要处理覆盖问题。引用[3]指出,使用IFamilyLoadOptions接口可以在载入时处理名称冲突,比如选择覆盖现有。同时,创建实例时需要指定类型和位置,这部分可能需要使用FamilyInstanceCreationData。 用户可能需要具体的代码示例。需要确保代码正确使用Transaction来处理事务,因为Revit API大部分操作需要在事务中执行。此外,创建几何形状可能需要使用拉伸(Extrusion)或其它几何生成方法,这里可能需要用到FamilyItemFactory类。 还需要注意,创建文档通常是从模板开始,比如公制常规模型.rft。因此,代码中需要指定正确的模板路径。另外,设置参数时,可能需要使用FamilyManager来添加参数,这部分引用[1]和[3]都有涉及。 最后,要确保回答结构清晰,分步骤说明,并附上代码示例。同时,根据用户的要求生成相关问题,可能涉及参数设置、几何创建或冲突处理等。</think>### Revit API 创建自定义并载入项目教程 #### 步骤1:创建文档 使用`Application.NewFamilyDocument()`方法基于模板(如公制常规模型)创建文档: ```csharp Document familyDoc = app.NewFamilyDocument(@"C:\ProgramData\Autodesk\RVT 2023\Family Templates\Chinese\公制常规模型.rft"); ``` #### 步骤2:添加参数 通过`FamilyManager`管理参数,可添加共享参数或类型参数: ```csharp FamilyManager fm = familyDoc.FamilyManager; // 添加类型参数 FamilyTypeParameter param = fm.AddParameter( "自定义宽度", BuiltInParameterGroup.PG_GEOMETRY, ParameterType.Length, false); ``` #### 步骤3:创建几何形体 使用拉伸操作创建基础几何体: ```csharp using (Transaction tr = new Transaction(familyDoc, "创建几何")) { tr.Start(); // 创建参考平面 Plane plane = Plane.CreateByNormalAndOrigin(XYZ.BasisZ, XYZ.Zero); SketchPlane sketchPlane = SketchPlane.Create(familyDoc, plane); // 创建拉伸轮廓 CurveArray profile = new CurveArray(); profile.Append(Line.CreateBound(new XYZ(0,0,0), new XYZ(1,0,0))); profile.Append(Line.CreateBound(new XYZ(1,0,0), new XYZ(1,1,0))); profile.Append(Line.CreateBound(new XYZ(1,1,0), new XYZ(0,1,0))); profile.Append(Line.CreateBound(new XYZ(0,1,0), new XYZ(0,0,0))); Extrusion extrusion = familyDoc.FamilyCreate.NewExtrusion( true, profile, sketchPlane, 1.0, XYZ.BasisZ); tr.Commit(); } ``` #### 步骤4:载入项目文档 实现`IFamilyLoadOptions`处理冲突: ```csharp public class FamilyLoadOptions : IFamilyLoadOptions { public bool OnFamilyFound(bool familyInUse, out bool overwriteParameterValues) { overwriteParameterValues = true; // 覆盖参数值 return true; // 始终载入 } public bool OnSharedFamilyFound(Family sharedFamily, bool familyInUse, out FamilySource source, out bool overwriteParameterValues) { source = FamilySource.Project; overwriteParameterValues = true; return true; } } ``` #### 步骤5:创建实例 将载入的放置到项目中: ```csharp FamilySymbol symbol = null; foreach (ElementId id in loadedFamily.GetFamilySymbolIds()) { symbol = doc.GetElement(id) as FamilySymbol; if (!symbol.IsActive) symbol.Activate(); break; } using (Transaction tr = new Transaction(doc, "放置实例")) { tr.Start(); doc.Create.NewFamilyInstance( XYZ.Zero, symbol, StructuralType.NonStructural); tr.Commit(); } ``` #### 关键要点 1. **参数继承**:系统参数不可修改,自定义需通过`FamilyManager`添加新参数[^1][^3] 2. **模板选择**:不同的模板决定了可用的建模工具和参数类型[^2] 3. **几何生成**:支持拉伸、融合、旋转等多种建模方式 4. **版本兼容**:需注意不同Revit版本的模板路径差异
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值