Meu primeiro plug-in para Revit

Augusto Goncalves – Autodesk Sem conhecer linguagens de programação, aprenda passo-a-passo como começar a criar plug-ins para Revit com .NET e C#.

Sobre o Palestrante
Augusto é membro do time ADN DevTech desde 2008 e trabalha no escritório da Autodesk em São Paulo. É especialista nas APIs AutoCAD, Civil3D e Revit. Antes de trabalhar na Autodesk, Augusto trabalhou em projetos CAD para engenharia e comércio eletrônico. É graduado em Engenharia Civil e pós-graduado em Engenharia de Computação. augusto.goncalves@autodesk.com

Você pode substituir todos os "Revit Architecture" por "Revit Structure" ou "Revit MEP" neste guia com versão 2011 ou superior. somos incentivados a ser a cada vez mais eficientes. A versão do produto com suporte é a Autodesk Revit Architecture 2011 e versões posteriores. Este é dos principais benefícios da personalização: adaptar o software para o uso diário permitindo aumento de eficiência. Este guia é diferente: ele assume nenhum conhecimento de programação anterior ajuda a construir seu primeiro plug-in rapidamente. A aula começará através da construção de um plug-in que cobre explicações mais detalhadas dos princípios e em seguida continuaremos desenvolvendo a funcionalidade da aplicação. sem apresentar muitos detalhes de uma vez. você trabalhará com o API . Autodesk Revit fornece uma rica API que pode ser usada para personalizar os recursos existentes no produto ou adicionar recursos inteiramente novos. Todas as etapas deste guia são aplicáveis a qualquer produto do Revit. Há muitos recursos disponíveis na web para que você aprenda mais sobre o Autodesk Revit API (Application Programming Interface). Este guia foi criado com base em Autodesk Revit Architecture. Neste guia. esses recursos tendem a ser projetados para pessoas que já conhecem programação. Um guia passo-a-passo direcionado ao aprendizado de usuários que conhecem produtos da Autodesk. 2 .Meu primeiro plug-in para Revit Visão geral Voce é um usuário do Autodesk Revit com um interesse em se tornar ainda mais produtivo? Gostaria de automatizar ou estender os recursos do Revit. O guia vai começar revisando os benefícios da personalização de software Autodesk antes de avançar para lições que abrangem a utilização da API Autodesk Revit.NET do Autodesk Revit e a linguagem de programação C#. "Meu primeiro plug-in" é um guia. independentemente do seu nível atual de conhecimentos de programação. A Autodesk fornece poderosas APIs e SDKs (Software Development Kits) que permitem que você obtenha mais retorno do valor de seu investimento em software Autodesk ao adequá-lo para as necessidades do seu negócio. mas é novo em programação de software? Em caso afirmativo. Você pode automatizar tarefas repetitivas e demoradas e estender os recursos do núcleo sem sair do ambiente de Autodesk Revit. estendendo sua funcionalidade. A API pode ser usada para criar ferramentas personalizadas e recursos que se conectam diretamente ao Autodesk Revit. no entanto. mas são absolutamente novos para programação e estão pretendendo mergulhar no mundo de programação. inicialmente disponível na web. desenvolvido de modo a proporcionar uma introdução suave ao mundo da programação. então este guia foi projetado para você. Você terá um aplicativo prático dentro de uma hora. Os benefícios da personalização de Autodesk Revit No mundo de hoje.

Depois que você se sentir confortável com o conteúdo deste guia . fácil de usar e aproveita o poder do Framework .NET que significa que você pode usar qualquer linguagens de programação (C#. Em seguida. clique em novo projeto.) compatíveis com . selecionar todos os programas e. Na aba ‘Installed Templates’ na janela à esquerda. C# é a escolha natural para este guia: é fácil de aprender. na janela do meio. em seguida. Programar pode ser muito gratificante. clique em Visual C#. clique em biblioteca de classes.e mais acostumado com C# . VB.você será capaz avançar para resolver problemas mais complexos com a linguagem. Etapas para criar seu primeiro plug-in 1. Divirta-se! Lição 1: O Basic plug-in Nesta lição você criará sua primeira base Autodesk Revit plug-in para copiar grupos selecionados pelo usuário em um local especificado.NET para desenvolver um plug-in. etc. Inicie o ambiente de desenvolvimento Visual C# Express: Abra o Visual C# 2010 Express usando o menu Iniciar do Windows. Digite Lab1PlaceGroup na caixa nome. 2. no menu arquivo. Clique em OK. Enquanto cada idioma tem seus próprios benefícios relativos. Crie um projeto de biblioteca de classe: Dentro Visual C# Express. 3 . F #. Esperamos que você se sinta assim depois de concluir essas lições. o Microsoft Visual c# 2010 Express (item de submenu).Meu primeiro plug-in para Revit Autodesk Revit tem uma API . em seguida. Microsoft Visual Studio Express 2010 e.NET.NET.

Agora os dois arquivos DLL são referenciados em seu projeto. em seguida. Você irá adicionar dois arquivos de referência desta pasta.dll. Na janela Propriedades. Selecione RevitAPI. 6. O caminho padrão é C:\Program Files\Autodesk\Revit Architecture 201x\Program). clique em propriedade Copy Local e clique na lista suspensa. 7. clique com botão direito em References e clique em Add Reference… 5. Todas as APIs do Revit são expostas por esses arquivos de interface e seu projeto pode usar todas essas APIs disponíveis neles.Meu primeiro plug-in para Revit O Visual C# Express irá criar um projeto de código padrão para você e exibir o código na janela de código. clique em OK. clique em RevitAPI em seu nó de referência. Adicione referências: Na janela do lado direito da janela do Visual C# Express Solution Explorer. em seguida.dll e. Defina o valor da propriedade Copy Local dos arquivos de referência: Na janela Solution Explorer que você viu na etapa 5. clique em Salvar tudo. 3.NET: 4 . Clique na guia Procurar na caixa de diálogo Add Reference e navegue até a subpasta de instalação do produto Revit. Repita os mesmos passos para alterar o valor da propriedade Copy Local da RevitAPIUI como False. clique em Salvar. (O caminho da subpasta depende onde você instalou o Revit Architecture 201X. mantenha pressionada a tecla Ctrl e selecione RevitAPIUI. Salve o projeto: No menu arquivo. Configura a versão Framework . Na janela de exibição digite C:\test na caixa local e. selecione False. 4.

Autodesk.Start("Lab").ActiveUIDocument. //Place the group Transaction trans = new Transaction(doc).PickObject(ObjectType.Meu primeiro plug-in para Revit Atenção: O Autodesk Revit 2011 oferece suporte ao uso do Framework . Autodesk.GroupType).Linq. Reference pickedRef = null.Manual)] [RegenerationAttribute(RegenerationOption.PlaceGroup(point.cs na janela Solution Explorer para mostrar a janela de edição de código.Architecture. que Visual C# 2010 Express usa por padrão. 5 . ref string message.ActiveUIDocument. //Pick a point XYZ point = sel.Revit.Selection. Group group = elem as Group. 8.Manual)] public class Lab1PlaceGroup : IExternalCommand { public Result Execute( ExternalCommandData commandData. Autodesk. using System.Collections. using using using using using using Autodesk.NET 3.PickPoint("Please pick a point to place group"). "Please select a group").Revit. Autodesk. trans.Revit. recomendamos que você escreva o código deste guia. ElementSet elements) { //Get application and document objects UIApplication uiApp = commandData. doc.Element.Revit. //Define a Reference object to accept the pick result.Revit.DB.UI.Selection.Generic.Commit(). Adicione o código: Clique duas vezes em Class1.Application.ApplicationServices. using System. using System. Para obter a experiência completa de desenvolvimento com o Visual C# Express-incluindo o uso de recursos.Revit.Attributes. em seguida. Element elem = pickedRef.Create.Element.DB.5 e o Autodesk Revit 2012 oferece suporte ao uso do Framework . Exclua tudo nesta janela e.0.UI.NET 4. trans.Document. Autodesk. Document doc = uiApp. [TransactionAttribute(TransactionMode. group. digite o seguinte código C#. como o IntelliSense. pickedRef = sel. //Pick a group Selection sel = uiApp. em vez de copiar e colar.

Mude na janela “Salvar como” a opção tipo para todos os arquivos (o nome do arquivo é com você. no entanto a extensão de arquivo deve ser "AddIn"). em seguida. Construa o projeto: O código que você escreveu é em forma humana legível. clique no botão Salvar. Escrever um manifesto AddIn Um manifesto de AddIn é um arquivo localizado em um local específico. verificado pelo Revit quando inicia. Copie e cole as seguintes configurações de carregamento de plug-in para o editor do bloco de notas.Succeeded. você precisará traduzi-lo ou "construir". <?xml version="1. clique em Salvar.0" encoding="utf-8"?> <RevitAddIns> <AddIn Type="Command"> <Assembly> C:\test\Lab1PlaceGroup\Lab1PlaceGroup\bin\Release\Lab1PlaceGroup. A mensagem Build Succeeded é mostrada na barra de status da janela do Visual C# Express se a DLL foi criado com êxito. Digite MyFirstPlugin.dll em seu computador: C:\test\Lab1PlaceGroup\Lab1PlaceGroup\bin\Release\Lab1PlaceGroup. Salve o arquivo: No menu de arquivo do bloco de notas.exe a partir do menu Iniciar do Windows. 1. } } 9. clique em Build Solution para compilar e construir seu plug-in. no menu Debug. Navegue até a subpasta seguinte e.  Para o Windows XP C:\Documents and Settings\All Users\Application Data\Autodesk\Revit\Addins011\ 6 . Adicione o código do manifesto: Inicie Notepad.addin na caixa nome do arquivo. O manifesto inclui informações usadas pelo Revit para carregar e executar o plug-in. Dentro Visual C# Express.Meu primeiro plug-in para Revit return Result.dll </Assembly> <ClientId>502fe383-2648-4e98-adf8-5e6047f9dc34</ClientId> <FullClassName>Lab1PlaceGroup</FullClassName> <Text>Lab1PlaceGroup</Text> <VendorId>ADSK</VendorId> <VisibilityMode>AlwaysVisible</VisibilityMode> </AddIn> </RevitAddIns> Dependendo de qual versão você está usando talvez você precise alterar o caminho aqui para combinar com seu local de Lab1PlaceGroup. Para tornar o código legível por um computador.dll 2.

3. clique em Lab1PlaceGroup. clique na lista suspensa de ferramentas externas e.rvt 2. em seguida. aqui está a configuração no diálogo Salvar como no Windows 7 para Revit Architecture 2011. sua caixa delimitadora deve ser destacada como pela abaixo imagem. Isto irá iniciar seu plug-in.Meu primeiro plug-in para Revit  Para o Windows Vista/Windows 7 C:\ProgramData\Autodesk\Revit\Addins011\ Por exemplo.autodesk. Trabalhar com o plug-in: Mova o cursor sobre Room1 o modelo Revit. Inicie o Autodesk Revit Architecture.com/adsk/files/hotel. Carregar seu plug-in no Revit e permitir que o plug-in se comunique com o Revit: No interior do Revit na guia Addins da faixa de opções. Abra o dataset http://images. com uma dica 7 . 1. Quando o cursor está focalizando o grupo de mobiliário.

Meu primeiro plug-in para Revit de ferramenta mostrando: modelo de Grupo: Grupo 1. na sala 2. 4. Escolha um ponto em outra sala. Clique para selecionar este grupo de mobiliário. Se a sala estiver selecionada. por exemplo. 8 . você não verá o resultado esperado após o passo seguinte). O centro do novo grupo é o ponto selecionado. (Nota: O quarto parece muito semelhante ao grupo. selecione cuidadosamente o grupo de acordo com a mensagem na dica de ferramenta. Você deverá ver o grupo copiado para este local. Por favor.

como a Autodesk. O que é uma API? API é o acrônimo em inglês para Interface de Programação de Aplicativo: a forma como um programador de software pode se comunicar com um produto de software. um computador vê estas instruções codificadas como uma série de números (também chamados de código de máquina). Por exemplo. Você vai olhar várias linhas e blocos de código e olhar para eles em um contexto de instruções para um computador. O que é programação? Uma resposta simples a esta pergunta é: programação de computadores é o processo de criação de uma sequência de instruções para dizer ao computador como fazer algo. A API Revit permite que você escreva instruções para serem executadas. Internamente. As instruções legíveis que você viu no início desta lição são chamadas de código-fonte e o computador converte essas instruções para código de máquina que ele pode ler e executar. você poderia dizer: um computador é uma ferramenta que segue as instruções que você fornece. A programação é uma maneira de dar instruções para o computador. Se você fosse para explicar o que é um computador para uma criança. escrito para executar uma tarefa específica. Autodesk Revit é um desses produtos de software. Aqui você viu uma pequena quantidade de código trabalhando de forma semelhante ao comando interno do Revit: criar semelhantes. e uma coleção de tais programas e dados relacionados é chamada de software. Este conjunto de bibliotecas é conhecido como API do produto de software. Código-fonte pode ser escrito em linguagens diferentes. e estender sua funcionalidade. em seguida. Programação de software permite que você capture a lógica de uma determinada funcionalidade uma vez e. a API do Revit é a maneira que os programadores podem trabalhar com Revit. Você pode olhar para seu programa como uma sequência de instruções. um conjunto de bibliotecas que você pode usar em seu próprio programa para interagir com um determinado produto de software. assim como os seres humanos usam idiomas diferentes para se comunicar entre nós. e estabelece que um programador de software pode usar as funcionalidades do Revit. muitas vezes. é chamada de programa. distribuem. colha os benefícios sempre que você quiser executar essa funcionalidade. tais como Autodesk Revit. Para colocar isto de forma ligeiramente diferente: empresas de software comercial. Uma sequência de tais instruções (ou código). 9 .Meu primeiro plug-in para Revit Tópicos adicionais Introdução à programação O código C# que utilizamos para copiar grupos tem apenas 30 linhas. A língua que você usará neste guia é chamada C# (pronuncia-se "C Sharp").

O que é um plug-in? Um software plug-in é um tipo de módulo de programa (ou arquivo) que adiciona funcionalidade a um produto de software.autodesk.autodesk. blog de API Revit: http://thebuildingcoder.autodesk. Duvidas entre em contato.Meu primeiro plug-in para Revit O tipo de programa você escreve para interagir com um software e estender sua funcionalidade dependerá de como a API foi projetada e o que foi exposto (através de APIs) para que você possa trabalhar com o software. o Revit carrega esses plug-ins e usa para ajustar seu comportamento sob certas condições. Quando iniciado.com/myfirstrevitplugin. como quando um determinado comando é executado pelo usuário do plug-in. Quando você fala sobre um plug-in para Revit – e também ouvirá o termo Add-In usado para este produto – falamos de um módulo que contém o código que faz uso da API do Revit.typepad.com/developrevit > Introdução a API Revit (vídeo em Português) Autodesk Developer Network: www. Quase sempre este fluxo tem detalhes particulares de cada escritório. vejo que uma das grandes necessidades atuais é adequar os softwares para fluxos de trabalho interno das empresas. 10 . Este material é apenas uma introdução a um material muito mais completo disponível em www. visite www.com/apitraining para uma agenda completa. por exemplo).com/ Conclusão Espero que esta introdução a programação permita que você entenda um pouco mais como a programação pode ajudar no seu fluxo de trabalho. geralmente sob a forma de um comando para automatizar uma tarefa ou alguma personalização do comportamento do produto.com/joinadn The Building Coder. daí a vantagem de modificar o software (via programação. No meu trabalho como evangelizador das tecnologias de programação da Autodesk. Para cursos presenciais de Revit e outros produtos em nosso escritório.autodesk. Leitura Adicional Revit Developer Center: www.