システムにはこれらのタイプのエリアスキームのみがあります(下の図を参照)。コードで新しいエリアスキームを生成する場合、どのように操作する必要がありますか?たとえば、「標準フロアエリア」エリアプランを生成し、新しいエリアプレーンを生成します。最初にコードを記述してから説明します。!!
//创建面积方案
public static AreaScheme CreateAreaView(Document doc, string name)
{
AreaScheme areaScheme = new FilteredElementCollector(doc).OfClass(typeof(AreaScheme)).Cast<AreaScheme>().FirstOrDefault();
ICollection<ElementId> newElemIds = ElementTransformUtils.CopyElement(doc, areaScheme.Id, XYZ.Zero);
AreaScheme newVft = doc.GetElement(newElemIds.First()) as AreaScheme;
newVft.Name = name;
return newVft;
}
List<Level> levelList = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfType<Level>().ToList();
//调用方法,并且添加楼层标高
Transaction trans1 = new Transaction(doc, "创建面积方案");
trans1.Start();
AreaScheme houseAreaScheme = ViewEx.CreateAreaView(doc, "标准层面积");
trans1.Commit();
foreach (var level in levelList)
{
ViewPlan v = ViewPlan.CreateAreaPlan(doc, houseAreaScheme.Id, level.Id);
}
MessageBox.Show("创建完成");
return Result.Succeeded;
作成のアイデアは次のとおりです:私は最初にプロジェクトでエリアプランをランダムに見つけ、次にこのプランをコピーし、次にコピーされたプランの名前を変更し、次に床の高さのプランビューを追加します。
この共有は以上です、皆さんありがとうございます