Sada Revit SDK obsahuje dvě složky s ukázkami:
\Revit SDK <verze>\Software Development Kit\Samples\...
\Revit SDK <verze>\Software Development Kit\Macro Samples\...
Programy ve složce \Samples sady SDK využívají standardní rozhraní Revit API. Tyto ukázky jsou označovány jako ukázkový kód SDK a odlišují se od ukázek Revit makro.
Chcete-li použít ukázkový kód SDK pro makra, jsou zapotřebí určité úpravy. Postupujte podle kroků v této části. Zobrazené příklady používají programovací jazyk C#. Tyto pokyny však platí také pro verze ukázek SDK v jazyce VB.NET.
Prvotní kroky
Prvotní kroky sloužící k migraci ukázek využívajících standardní rozhraní API ze sady SDK do integrovaného vývojového prostředí projektu makra Revit jsou podobné jako v části Integrace maker do integrovaného vývojového prostředí Revit. Místo kopírování souborů ze složek \Macro Samples\<název ukázky>\... sady SDK budete kopírovat soubory ze složek \Samples\<název ukázky>\... sady SDK.
Zopakujme, že se jedná o následující kroky:
- v integrovaném vývojovém prostředí přidejte požadované odkazy,
- v integrovaném vývojovém prostředí vytvořte složky pro ukázky SDK, které chcete migrovat,
- v Průzkumníku Windows zkopírujte soubory ukázek SDK využívající standardní rozhraní API do odpovídajících složek v systému souborů,
- v integrovaném vývojovém prostředí přidejte existující soubory do projektu makra.
Aktualizace kódu ukázek SDK
V integrovaném vývojovém prostředí Revit makro není rozhraní IExternalCommand dostupné ani používané. V ukázkovém kódu SDK, které využívá standardní rozhraní API, je třeba aktualizovat třídu, která dědí vlastnosti z tohoto rozhraní:
- odeberte parametry metody a návrat metody Execute,
- aktualizujte jiný kód související s ExternalCommandData.
Příklad kódu před úpravou
Následující úsek kódu pochází z programu, který využívá standardní rozhraní Revit API:
Příklad kódu po úpravě
V integrovaném vývojovém prostředí Revit makro je kód nutné následujícím způsobem aktualizovat. Tento příklad znázorňuje makro na úrovni aplikace. Metoda RunSampleRooms() je položka pro tuto ukázku makra. Povšimněte si, že ukazatel this byl použit k nahrazení commandData.Application.
Další poznámky k migraci ukázek SDK využívajících standardní rozhraní API
- Obor názvů ukázky SDK je ve výchozím nastavení Revit.SDK.Samples.<SampleName>.CS. Při úpravě ukázkového kódu, který pochází z ukázek SDK využívajících standardní rozhraní API, změňte obor názvů pro integrované vývojové prostředí Revit. Příklad pro ThisApplication.cs:
namespace AppCSharp.csproj
- Výchozí projektové odkazy v projektech integrovaného vývojového prostředí Revit obsahují pouze základní odkazy, například Revit.Proxy. Nezapomeňte přidat další požadované reference. Při spouštění ukázek zobrazujících uživatelské rozhraní je například nutné přidat odkazy System.Windows.Forms a System.Drawing.
- Některé ukázky využívají prostředky, které musí být definovány v souboru resources.resx. Jednou z těchto ukázek je GridCreation. Při migraci ukázky SDK GridCreation využívající standardní rozhraní API do integrovaného vývojového prostředí Revit nezapomeňte nastavit vlastnost resx.
- Závislost sestavení projektu není v rámci integrovaného vývojového prostředí Revit makro podporována. Chcete-li použít jiné knihovny DLL, je třeba zkompilovat tento závislý ukázkový projekt mimo integrované vývojové prostředí Revit makro. V ukázkách SDK využívajících standardní rozhraní API se například několik ukázek vztahuje k prohlížečům, jako je analytický prohlížeč či prohlížeč místností, které závisejí na odkazech na RevitViewer.
Nelze však nastavit závislost projektu z důvodu omezení v integrovaném vývojovém prostředí Revit a ukázku RevitViewer nelze migrovat. Z tohoto důvodu je nutné zkompilovat ukázku RevitViewer jako nezávislou ukázku sady SDK a pak přidat její knihovnu DLL jako odkaz do projektu integrovaného vývojového prostředí Revit.
- Při migraci ukázek SDK využívajících standardní rozhraní API do integrovaného vývojového prostředí Revit nekopírujte žádné soubory řešení (*SLN*) ani existující projektové soubory (*CSPROJ nebo *VBPROJ).
- Ukázky související s panely nástrojů nejsou v integrovaném vývojovém prostředí Revit k dispozici.