public static void ConnectionTypePlacer(Document doc, UIApplication uiApp, string targetType) { //COLLECT ALL CONNECTION TYPE Dictionary <int, string> revitConnTypeDict = new Dictionary <int, string>(); PublicBlocks.ConnTypeCollector(doc, out revitConnTypeDict); Dictionary <string, string> xmlConnTypeDict = new Dictionary <string, string>(); XmlProcessor.xmlReader(PublicBlocks.settingFileName, out xmlConnTypeDict); int connTypeId = -1; if (targetType != "PIN") { PublicBlocks.ConnectionTypeSelector(xmlConnTypeDict, revitConnTypeDict, targetType, out connTypeId); } //Get View info ViewItem currentView = new ViewItem(); PublicBlocks.getCurrentView(doc, out currentView); int KeepRun = 0; while (KeepRun == 0) { Selection sel = uiApp.ActiveUIDocument.Selection; XYZ point = null; #region//Pick point try { point = sel.PickPoint(); } catch (Exception) { return; } #endregion List <Beam> beamList = new List <Beam>(); PublicBlocks.BeamFinder(doc, point, currentView.cutToBott, out beamList); using (Transaction t = new Transaction(doc, "Set end connection type")) { t.Start(); foreach (Beam bm in beamList) { Element e = doc.GetElement(bm.id); int targetEnd = 0; PublicBlocks.TargetEndFinder(point, bm.end0, bm.end1, out targetEnd); PublicBlocks.ConnectionModifier(doc, e, connTypeId, targetEnd); } t.Commit(); } } }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elementSet) { UIApplication uiApp = commandData.Application; Document doc = commandData.Application.ActiveUIDocument.Document; string targetType = "PIN"; PublicBlocks.ConnectionTypePlacer(doc, uiApp, targetType); return(Result.Succeeded); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elementSet) { UIApplication uiApp = commandData.Application; Document doc = commandData.Application.ActiveUIDocument.Document; Dictionary <int, string> connTypeDict = new Dictionary <int, string>(); PublicBlocks.ConnTypeCollector(doc, out connTypeDict); Dictionary <string, string> typeDict = new Dictionary <string, string>(); using (FormUserSetting thisForm = new FormUserSetting(connTypeDict)) { thisForm.ShowDialog(); if (thisForm.DialogResult == System.Windows.Forms.DialogResult.Cancel) { return(Result.Cancelled); } typeDict = thisForm.renewTypeDict; } return(Result.Succeeded); }