Assistente: Patrcia Mara Silva Crie seu primeiro plugin para Revit, e descubra, mesmo sem ser um desenvolvedor profcional, como possvel exponencializar as funcionalidades do Revit atrevs da programao. Objetivo de aprendizado Ao final desta palestra voc ter condies de: Oque preciso ter e saber para desenvolver um plug-in para Revit Desenvolver o primeiro plug-in para Revit Onde obter ajuda
Sobre o Palestrante Vitor iniciou sua carreira no AutoCAD R14 na rea da engenharia rodoviria, se apaixonou pela programao e se especializou nas APIs de programao para AutoCAD e Revit. membro ADN ds de 2009, e atualmente supervisor da equipe de desenvolvimento de plug- ins para Revit na ofcdesk.llc. vitorpaulo1@yahoo.com.br
Meu primeiro plug-in para Revit 2
Oque preciso ter e saber para desenvolver um plug-in para Revit Oque priciso ter? Revit 2010 ou superior A partir da verso 2010 a Autodesk disponibilizou a API .NET para desenvolvimento de plug-ins que rodam dentro do Revit. A partir da, a cada verso do Revit, ela tem aprimorado e tornado essa biblioteca de desenvolvimento cada vez mais rica e poderosa. Visual Studio Express ou Proficional O Visual Studio a IDE .Net que usaremos para desenvolver nossos plug-ins. Para entender oque o Visual Studio faz, podemos dizer em termos simples, que ele um programa utilizado para construir outros programas, e em nosso caso, utilizaremos ele para contruir nossos plug-ins para Revit. O bom do Visual Studio que alm de ser uma IDE muito poderosa e conhecida ele ainda tem uma verso gratuita (Express) que pode perfeitamente ser usada para criar nossos plug-ins. Revit SDK (Software Development Kits) O Revit SDK um kit de desenvolvimento que pode ser baixado gratuitamente no site da Autodesk. Cada verso do Revit tem o seu prprio SDK.
Oque priciso saber? Conhecimento bsico em Revit No necessrio que voc seja um expert em Revit para comear a desenvolver seus plugi-ins, mas visto que os plug-ins rodaro dentro do Revit, necessrio que voc tenha pelo menos um conhacimento basico de Revit para o auxiliar no entendimento da estrutura interna do Revit. Conhecimento no Framework .Net O Framework .NET uma plataforma de programao. Ele basicamente um conversor que transforma o cdigo do programa que estamos desenvolvendo num outro cdigo que pode ser lido, processado e executado pelo computador. Quando escervemos nosso cdigo, ele deve ser escrito numa ligua que o Framework .NET conhea, dentre elas podemos citar C#, VB.NET, F # e muitas outras. No nosso guia usaremos a liguagem de programao C#, por ser a mais utilizada e pela sua facilidade de aprendizado. A medida que comear a desenvolver seus plug-ins comesar a obter tambm mais fluencia nessa liguagem. Conhecimento da API do Revit API significa Application Programming Interface, uma biblioteca que d acesso via programao as funcionalidades do Revit. Assim como conseguimos dar ordens para o Revit, como criar paredes e importar famlias, atrves dos botes e atlhos disponibilizados na interface do Revit, tambm podemos dar ordens ao Revit atravz da sua API usando um cdigo de programa escrito em C#. Meu primeiro plug-in para Revit 3
Desenvolvendo um plug-in passo-a-passo Nesta lio voc criar seu primeiro plug-in para Revit que basicamente tem a funo de copiar grupos selecionados pelo usurio em um local especificado. Etapas para criar seu primeiro plug-in
1. Inicie o ambiente de desenvolvimento Visual C# Express: Abra o Visual C# 2010 Express usando o menu Start do Windows, selecionar All programs e, em seguida, Microsoft Visual Studio 2010 Express e, em seguida, o Microsoft Visual c# 2010 Express (item de submenu). 2. Crie um projeto de biblioteca de classe: Dentro Visual C# Express, no menu File, clique em New Project. Na aba Installed Templates na janela esquerda, clique em Visual C#. Em seguida, na janela do meio, clique em Class Library. Digite Lab1PlaceGroup na caixa Name. Clique em OK.
O Visual C# Expres s ir criar um projeto de cdigo padro para voc e exibir o cdigo na janela de cdigo. 3. Salve o projeto: No menu File, clique em Save All. Na janela de exibio digite C:\test na caixa Location e, em seguida, clique em Save. 4. Adicione referncias: Na janela Solution Explorer do lado direito da janela do Visual C# Express, clique com boto direito em References e clique em Add Reference Meu primeiro plug-in para Revit 4
5. Clique na guia Browse na caixa de dilogo Add Reference e navegue at a subpasta de instalao do produto Revit. (O caminho da subpasta depende onde voc instalou o Revit Architecture 201X. O caminho padro C:\Program Files\Autodesk\Revit Architecture 201x\Program).
Voc ir adicionar dois arquivos de referncia desta pasta. Selecione RevitAPI.dll, mantenha pressionada a tecla Ctrl e selecione RevitAPIUI.dll e, em seguida, clique em OK. Agora os dois arquivos DLL so referenciados em seu projeto. Todas as APIs do Revit so expostas por esses arquivos de interface e seu projeto pode usar todas essas APIs disponveis neles.
Meu primeiro plug-in para Revit 5
6. Defina o valor da propriedade Copy Local dos arquivos de referncia:
Na janela Solutio n Explore r que voc viu na etapa 5, clique em RevitAP I no n Referen ces. Na janela Propriedades, clique em propriedade Copy Local e clique na lista suspensa, selecione False. Repita os mesmos passos para alterar o valor da propriedade Copy Local da RevitAPIUI como False. 7. Configura a verso Framework .NET: Ateno: O Autodesk Revit 2011 oferece suporte ao uso do Framework .NET 3.5 e o Autodesk Revit 2012 oferece suporte ao uso do Framework .NET 4.0, que Visual C# 2010 Express usa por padro 8. Adicione o cdigo: Clique duas vezes em Class1.cs na janela Solution Explorer para mostrar a janela de edio de cdigo. Exclua tudo nesta janela e, em seguida, digite o seguinte cdigo C#. Para obter a experincia completa de desenvolvimento com o Visual C# Express-incluindo o uso de recursos, como o IntelliSense, recomendamos que voc escreva o cdigo deste guia, em vez de copiar e colar.
using System; using System.Collections.Generic; using System.Linq;
using Autodesk.Revit.DB; using Autodesk.Revit.DB.Architecture; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using Autodesk.Revit.ApplicationServices; using Autodesk.Revit.Attributes;
[TransactionAttribute(TransactionMode.Manual)] Meu primeiro plug-in para Revit 6
[RegenerationAttribute(RegenerationOption.Manual)] public class Lab1PlaceGroup : IExternalCommand { public Result Execute( ExternalCommandData commandData, ref string message, ElementSet elements) { //Get application and document objects UIApplication uiApp = commandData.Application; Document doc = uiApp.ActiveUIDocument.Document;
//Define a Reference object to accept the pick result. Reference pickedRef = null;
//Pick a group Selection sel = uiApp.ActiveUIDocument.Selection; pickedRef = sel.PickObject(ObjectType.Element,"Please select a group"); Element elem = pickedRef.Element; Group group = elem as Group;
//Pick a point XYZ point = sel.PickPoint("Please pick a point to place group");
//Place the group Transaction trans = new Transaction(doc); trans.Start("Lab"); doc.Create.PlaceGroup(point, group.GroupType); trans.Commit();
return Result.Succeeded; } }
9. Construa o projeto: O cdigo que voc escreveu em forma humana legvel. Para tornar o cdigo legvel por um computador, voc precisar traduzi-lo ou "construir" (Build). Meu primeiro plug-in para Revit 7
Dentro Visual C# Express, no menu Debug, clique em Build Solution para compilar e construir seu plug-in. A mensagem Build Succeeded mostrada na barra de status da janela do Visual C# Express se a DLL foi criado com xito
Escrever um manifesto Addin
Um manifesto de AddIn um arquivo localizado em um local especfico, verificado pelo Revit quandoinicia. O manifesto inclui informaes usadas pelo Revit para carregar e executar o plug-in. 1. Adicione o cdigo do manifesto: Inicie Notepad.exe a partir do menu Iniciar do Windows. Copie e cole as seguintes configuraes de carregamento de plug-in para o editor do bloco de notas. <?xml version="1.0" encoding="utf-8"?> <RevitAddIns> <AddIn Type="Command"> <Assembly> C:\test\Lab1PlaceGroup\Lab1PlaceGroup\bin\Release\Lab1PlaceGroup.dll </Assembly> <ClientId>502fe383-2648-4e98-adf8-5e6047f9dc34</ClientId> Meu primeiro plug-in para Revit 8
<FullClassName>Lab1PlaceGroup</FullClassName> <Text>Lab1PlaceGroup</Text> <VendorId>ADSK</VendorId> <VisibilityMode>AlwaysVisible</VisibilityMode> </AddIn> </RevitAddIns> Dependendo de qual verso voc est usando talvez voc precise alterar o caminho aqui para combinar com seu local de Lab1PlaceGroup.dll em seu computador: C:\test\Lab1PlaceGroup\Lab1PlaceGroup\bin\Release\Lab1PlaceGroup.dll 2. Salve o arquivo: No menu de arquivo do bloco de notas, clique em Salvar. Digite MyFirstPlugin.addin na caixa nome do arquivo. Mude na janela Salvar como a opo tipo para todos os arquivos (o nome do arquivo com voc; no entanto a extenso de arquivo deve ser "AddIn"). Navegue at a subpasta seguinte e, em seguida, clique no boto Salvar. Para o Windows XP - C:\Documents and Settings\All Users\Application Data\Autodesk\Revit\Addins\2011\ Para o Windows Vista/Windows 7 C:\ProgramData\Autodesk\Revit\Addins\2011\ Por exemplo, aqui est a configurao no dilogo Salvar como no Windows 7 para Revit Architecture 2011.
Meu primeiro plug-in para Revit 9
Escrever um manifesto Addin
1. Abra o dataset http://images.autodesk.com/adsk/files/hotel.rvt
2. Carregar seu plug-in no Revit e permitir que o plug-in se comunique com o Revit: No interior do Revit na guia Add-Ins da faixa de opes, clique na lista suspensa External Tools e, em seguida, clique em Lab1PlaceGroup. Isto ir iniciar seu plug-in. 3. Trabalhar com o plug-in: Mova o cursor sobre Room1 o modelo Revit. Quando o cursor est focalizando o grupo de mobilirio, sua caixa delimitadora deve ser destacada como pela abaixo imagem, com uma dica de ferramenta mostrando: Model Groups : Model Group : Group 1. Clique para selecionar este grupo de mobilirio. (Nota: O quarto parece muito semelhante ao grupo. Por favor, selecione cuidadosamente o grupo de acordo com a mensagem na dica de ferramenta. Se a sala estiver selecionada, voc no ver o resultado esperado aps o passo seguinte).
4. Escolha um ponto em outra sala, por exemplo, na Room2. Voc dever ver o grupo copiado para este local. O centro do novo grupo o ponto selecionado. Meu primeiro plug-in para Revit 10
Onde obter ajuda
My First Plugin Srie de tutoriais disponvel na ADN Open desenvolvido de modo a proporcionar uma introduo suave ao mundo da programao. Um guia passo-a-passo direcionado ao aprendizado de usurios que conhecem produtos da Autodesk, mas so absolutamente novos para programao e esto pretendendo mergulhar no mundo de programao. Neste guia, voc trabalhar com o API .NET do Autodesk Revit e a linguagem de programao C#. Autodesk Developer Network Comunidade criada pela Autodesk para treinar, auxiliar e intercambiar profissionais que desejam customizar as plataformas da AutoDesk atravs da programao. H tambm opses de filiao a comunidade, como a ADN Open que gratuita e te d acesso a fruns, matriais e vdeos alm de te colocar em contato com uma rede mundial de desenvolvedores nas APIs da AutoDesk. H tambm opses pagas em que voc recebe suporte exclusivo dos especialias da AutoDesk para que vocs entenda e extraia o melhor resultado posvel do uso da API ao desenvolver seus softwares. The Building Coder Jeremy Tammik Blog escrito por Jeremy Tammik, referencia mundial em desenvolvimento de plugins utilizando a API do Revit. Nele voc encontra ds de dicas e truques tecnicas complexas de desenvolvimento voltado para Revit. Se voc quiser se manter atualizados com as ultimas novidades e oque h de mais avanado no mundo dos plug-ins para Revit, a leitura deste blog indispenavel.