using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using System.Windows;
using System.Windows.Controls;
using Szmedi.RvKits.FamilyTools;
namespace Szmedi.RvKits.FamilyLibrary
{
///
/// SelectFamilySymbol.xaml 的交互逻辑
///
public partial class SelectFamilySymbol
{
private readonly Document doc;
private readonly string path;
private readonly UIDocument uidoc;
private FamilySymbol fs;
private List ss;
private string fsname;
public SelectFamilySymbol(UIApplication uiapp, string path, List symbols)
{
uidoc = uiapp.ActiveUIDocument;
doc = uidoc.Document;
this.path = path;
ss = symbols;
InitializeComponent();
CBSel.ItemsSource = symbols;
}
private void CBSel_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
fsname = CBSel.SelectedValue.ToString();
}
private void LoadAllBtn_Click(object sender, RoutedEventArgs e)
{
FamilyLoadOption familyLoadOption = new();
Family family = null;
using (Transaction trans = new(doc))
{
trans.Start("载入族-" + System.IO.Path.GetFileNameWithoutExtension(path));
doc.LoadFamily(path, familyLoadOption, out family);
foreach (var symbolId in family.GetFamilySymbolIds())
{
fs = doc.GetElement(symbolId) as FamilySymbol;
if (!fs.IsActive)
{
fs.Activate();
}
}
trans.Commit();
}
Close();
uidoc.PromptForFamilyInstancePlacement(fs);
}
private void LoadSpecifyBtn_Click(object sender, RoutedEventArgs e)
{
if (fsname != null)
{
using (Transaction trans = new(doc))
{
trans.Start("载入族类型-" + System.IO.Path.GetFileNameWithoutExtension(path) + "_" + fsname);
doc.LoadFamilySymbol(path, fsname, out fs);
if (!fs.IsActive)
{
fs.Activate();
}
trans.Commit();
}
Close();
uidoc.PromptForFamilyInstancePlacement(fs);
}
}
}
}