V této části naleznete odpovědi na nejčastější dotazy o makrech aplikace Revit.
| Otázka | Odpověď |
|---|---|
|
Proč se nadále zobrazuje zpráva, zda „důvěřuji autorům souborů v této složce“ a jak můžu zabránit zobrazování této zprávy? |
Tato zpráva pochází z aplikace Visual Studio Code a je součástí programu Workspace Trust společnosti Microsoft, který má zlepšit zabezpečení. Chcete-li zabránit zobrazování zprávy, postupujte následujícím způsobem:
|
| Čekal jsem, že moje nově vytvořené makro bude uvedeno v kategorizovaném seznamu Správce maker, avšak ono tam není. Proč? | Nová makra se ve Správci maker zobrazí až po úspěšném sestavení projektu makra v integrovaném vývojovém prostředí Revit makro (pomocí nabídky Sestavení). |
| Je při vytváření nového makra nutné přidat jako reference soubory RevitAPI.dll a RevitAPIUI.dll? | Ne. Není nutné odkazovat na soubory RevitAPI.dll a RevitAPIUI.dll, protože to již bylo provedeno. Projekt makra Revit používá jako potřebné reference oba soubory. |
| Je nutné upravit soubory Revit.ini? | Ne. Makra aplikace Revit se automaticky registrují pro zobrazení ve Správci maker bez jakékoliv další úpravy systému. |
| V integrovaném vývojovém prostředí Revit makro bylo makro odstraněno odebráním jeho metody v souboru This*.cs nebo This*.vb. Při opětovném otevření kategorizovaného seznamu Správce maker je však název odstraněného makra stále zobrazen. Jak lze tento název vymazat z tohoto seznamu? | Správce maker rozpozná odebrání teprve po úspěšném sestavení upraveného projektu. |
| Co lze zahrnout do spouštěcích a ukončovacích metod Module_Startup a Module_Shutdown? |
Metoda Module_Startup je volána při načtení modulu, metoda Module_Shutdown je volána při uvolnění modulu. U modulů maker na úrovni aplikace je při spuštění aplikace Revit volána metoda Module_Startup a při ukončení aplikace je volána metoda Module_Shutdown. U modulů maker na úrovni dokumentu je při otevření projektu aplikace Revit volána metoda Module_Startup a při zavření projektového dokumentu je volána metoda Module_Shutdown. Metody Module Startup a Module_Shutdown budou volány i při opětovném sestavení projektu makra. Do metod Module_Startup můžete přidat inicializační kód, do metod Module_Shutdown lze přidat určité akce vyčištění. Při spuštění lze například zaregistrovat obslužné rutiny událostí a při vypnutí jejich registraci zrušit (doporučený postup). |
| Jak a proč se provádí registrace a rušení registrace obsluhy událostí aplikace Revit? | Jak bylo zmíněno výše, doporučený způsob, jak toho dosáhnout v integrovaném vývojovém prostředí Revit, je zaregistrovat obsluhy událostí v metodě *_Startup a zrušit jejich registraci v metodě *_Shutdown. Všechna makra budou zaváděna a uvolňována dynamicky. Pokud při ladění makra není registrace obslužné rutiny události správně zrušena, může aplikace Revit volat chybnou metodu (například neplatnou adresu paměti). Ačkoli v této situaci může integrované vývojové prostředí Revit zabránit zhroucení aplikace Revit, jakékoli obslužné rutiny událostí, jejichž registrace není správně zrušena, mohou způsobit provozní potíže během aktuální relace aplikace Revit. |
| Zobrazuje se dialog, který nejspíše nefunguje správně a způsobuje potíže s aplikací Revit. | Nemodální dialogy, operující nad rámec spuštěného zpětného volání API, mohou způsobovat problémy. Doporučujeme předejít možné nestabilitě aplikace Revit tím, že se vyvarujete použití takovýchto zpětných volání. |
| Chci experimentovat s metodami Startup a Shutdown a obsluhou událostí. Je k dispozici nějaký příklad? | Následující ukázkový kód znázorňuje, jak zaregistrovat obslužnou rutinu událostí OnDocumentNewed, která u nového projektu aplikace Revit automaticky vyvolá okno se zprávou. Poznámka: V jedné z ukázek makra v sadě Revit SDK může být znázorněn příklad spuštění a ukončení obslužné rutiny události na úrovni dokumentu. V těchto nejčastějších dotazech jsou uvedeny příklady obslužných rutin událostí na úrovni aplikace.
Ve verzi 2011 lze k veškerým událostem aplikačního rozhraní API získat přístup prostřednictvím integrovaného vývojového prostředí Revit. Události předcházející verzi 2011 byly odstraněny. Následující příklady uvádí nové události. |
Příklad v jazyce C# na úrovni aplikace:
private void Module_Startup(object sender, EventArgs e)
{
this.Application.DocumentOpened
+= new EventHandler<Autodesk.Revit.DB.Events.DocumentOpenedEventArgs>(Application_DocumentOpened);
}
private void Module_Shutdown(object sender, EventArgs e)
{
this.Application.DocumentOpened
-= new EventHandler<Autodesk.Revit.DB.Events.DocumentOpenedEventArgs>(Application_DocumentOpened);
}
void Application_DocumentOpened(object sender, Autodesk.Revit.DB.Events.DocumentOpenedEventArgs e)
{
System.Windows.Forms.MessageBox.Show("message here");
}