2016-04-05 24 views
0

Ich habe ein Plugin für AutoCAD entwickelt, das kaskadierende Dropdown-Menüs enthält und das gleiche in Revit machen möchte, allerdings ist die Aufgabe in Revit wesentlich schwieriger als in AutoCAD das Fehlen von CUI-Dateien und dergleichen.Ribbon-Struktur mit SplitButtons/PullDownButton und PushButtons

Ich arbeite mit der Multifunktionsleiste, um zu sehen, ob ich dort dasselbe machen könnte und habe mit SplitButtons, PulldownButtons und Pushbuttons gespielt und ein paar Dinge entdeckt.

Davor, ein Bild von dem, was ich zu tun bekommen wollen, ist here:

Die elektrische PulldownButton enthält noch eine weitere PulldownButton Draht genannt. Ich möchte mehrere Ebenen dafür haben, egal ob Pulldowns oder SplitButtons.

Was ich bei der Programmierung in C# mit der Revit-API entdeckt habe, ist, dass SplitButtons und PulldownButtons keine Instanzen von sich selbst hinzufügen können, nur PushButtons! Was mich verwirrt, weil sie es im obigen Bild tun konnten.

bearbeiten: attached here ist ein Bild von einem kaskadierenden Menü in Revit .. Mir wurde gesagt, das war möglich, aber ziemlich schwierig zu implementieren.

Antwort

0

Sie suchen wahrscheinlich für eine sample like this:

public void AddSplitButton(RibbonPanel panel) 
{ 
    // Create three push buttons for split button drop down 

    // #1 
    PushButtonData pushButtonData1 = new PushButtonData("SplitCommandData", "Command Data", _introLabPath, _introLabName + ".CommandData"); 
    pushButtonData1.LargeImage = NewBitmapImage("ImgHelloWorld.png"); 

    // #2 
    PushButtonData pushButtonData2 = new PushButtonData("SplitDbElement", "DB Element", _introLabPath, _introLabName + ".DBElement"); 
    pushButtonData2.LargeImage = NewBitmapImage("ImgHelloWorld.png"); 

    // #3 
    PushButtonData pushButtonData3 = new PushButtonData("SplitElementFiltering", "ElementFiltering", _introLabPath, _introLabName + ".ElementFiltering"); 
    pushButtonData3.LargeImage = NewBitmapImage("ImgHelloWorld.png"); 

    // Make a split button now 
    SplitButtonData splitBtnData = new SplitButtonData("SplitButton", "Split Button"); 
    SplitButton splitBtn = panel.AddItem(splitBtnData) as SplitButton; 
    splitBtn.AddPushButton(pushButtonData1); 
    splitBtn.AddPushButton(pushButtonData2); 
    splitBtn.AddPushButton(pushButtonData3); 
} 
+0

Hey Augusto, danke für die Antwort. Dies ist jedoch nicht das, wonach ich suche. Ich weiß bereits, wie man PushButtons zu einem SplitButton hinzufügt. Was ich suche, ist das Hinzufügen von SplitButtons zu einem anderen SplitButton. wie das Beispiel, das ich oben gezeigt habe, wo es unter der Registerkarte Elektrisch Draht und Gerät gibt, die noch weiter herunterfallen können. – user3026715

+0

Das passiert tatsächlich, wenn ein vollständiges Panel aufgrund eines kleinen Bildschirms kollabiert (oder wenn Sie die Größe des Revit-Hauptfensters ändern) –

+0

Oh. :(Also dann nehme ich an, dass es dann nicht möglich ist? – user3026715

1

ich total mit Augusto zustimmen. Dies ist kein unterstütztes und nicht dokumentiertes Gebiet. Das Gebäude Coder zeigt einige Beispiele für die nicht unterstützte Funktionalität Funktionalität von AdWindows.dll im ‚Automation‘ Kategorie oder Beiträge zur Verfügung gestellt mit:

http://thebuildingcoder.typepad.com/blog/automation

Ein konkretes Beispiel für das Hinzufügen ziemlich vieler Menüpunkte in einem zwei angeordnet - Eine dreistufige Hierarchie wird von der externen Anwendung RvtSamples bereitgestellt, die im Revit SDK enthalten ist.