A última revisão da API Renga

O sistema para projeto de edifícios e estruturas da Renga está sendo desenvolvido ativamente, com ferramentas para arquitetos, projetistas dos engenheiros KZh e KM, VK, OV, EO e ES. Com cada versão, o sistema, agora dividido em Renga Architecture, Renga Structure e Renga MEP, e em breve se tornará um, cria funcionalidade. Junto com isso, cresce e muda, tornando-se uma API cada vez mais popular. De fato, em Renga, você pode criar um modelo de informações de um edifício, mas não pode (e não planeja) obter uma renderização bonita, uma estimativa para a construção ou cálculo de gasodutos. Obviamente, você pode exportar o modelo do Renga para formatos comuns como OBJ, IFC, STEP e muitos outros, mas, para ficar sem intermediários e evitar interpretar mal os dados durante a exportação / importação, é melhor agir através da API.

Renga MEP

Inicialmente, quando surgiu a questão de criar a API Renga (após o lançamento da primeira versão da Renga Architecture), focamos apenas na API C ++, com base nos requisitos que tínhamos na época.

Conforme o Renga se desenvolveu, começamos a receber perguntas dos desenvolvedores sobre se é possível escrever em C # e outros idiomas no Renga e quais versões do Visual Studio são suportadas.

Depois de analisar a disponibilidade da API para os usuários, pensamos em mudar a tecnologia.

O fato é que a API C ++ é bastante difícil. É altamente dependente do compilador, ou seja, se o SDK for compilado pelo compilador do Visual Studio, provavelmente você não poderá compilá-lo usando, por exemplo, gcc, como o mangling de nome não é padronizado, pode haver diferenças na implementação de tabelas virtuais, modelos etc. No próprio Visual Studio, também pode haver diferenças nas configurações de compilação e no suporte do padrão de versão para versão.

Em geral, pode-se conviver com isso, por exemplo, usando funções virtuais ao mínimo (e, como conseqüência, herança), não usando modelos e fixando o padrão usado e o ambiente de desenvolvimento por um determinado período de tempo.

Além disso, poderíamos criar várias versões da API para diferentes ambientes e / ou versões do sistema.
Ainda assim, decidimos olhar para o outro lado. E após a pesquisa, eles escolheram COM.
Esse padrão foi desenvolvido em 1993, ou seja, não é apenas antigo, mas superestrela), mas nos permitiu fornecer aos usuários uma única API, usando os quais você pode escrever plug-ins em C ++, C # ou outra linguagem compatível com COM, além disso, você pode usar a API COM para acessar para o Renga a partir de aplicativos de terceiros, incluindo aqueles escritos em linguagens com digitação dinâmica, por exemplo, em Python.

Ajuda da API Renga

Devo dizer que a Ajuda da API Renga detalha como começar, o que e como usá-lo. Mas ainda lhe dizemos o que você precisa para escrever uma extensão para Renga.

Portanto, para escrever uma extensão para o Renga em qualquer idioma, você precisará:

  1. Renga e entender exatamente o que você deseja automatizar ao trabalhar com o sistema.
  2. Kit de Desenvolvimento de Software Renga.
  3. Microsoft Visual Studio. Qualquer versão inferior a 2012.
  4. Conhecimento dos conceitos básicos de programação.

Você pode descobrir sobre o sistema Renga e seus recursos no site do sistema , na ajuda , no blog dos desenvolvedores , bem como em grupos no VK e no Facebook , anúncios e gravações de seminários on- line são postados lá, você também pode encontrar usuários reais do sistema e conversar com eles. Portanto, omitiremos o ponto de familiarização com o sistema, mas especificaremos quais requisitos a API pode atender agora.

Usando a API Renga, você pode:

  • selecione objetos no modelo e manipule o evento de seleção de objetos no Renga;
  • receber e alterar parâmetros de objetos,
  • ;
  • ;
  • , , ..;
  • , ;
  • 3D ;
  • IFC;
  • DWG/DXF;
  • , , ,
  • , .
  • .

No momento, você não pode criar um novo objeto a partir da API, isso está nos planos, mas não na próxima versão.

Deve-se observar que a API Renga está se expandindo a pedido dos usuários e, se você não viu os recursos de automação necessários nesta lista, entre em contato conosco e discutiremos sua ideia.

Se continuássemos trabalhando apenas na API C ++, o conjunto de recursos provavelmente seria o mesmo, mas temos quase certeza de que nem todas as extensões Renga nasceriam. A propósito, você pode ver a lista de extensões conhecidas por nós no site .

Agora vamos ver o que, no final, oferecemos aos nossos usuários em termos de API. Para obter o SDK do Renga, basta fazer o download. E para usá-lo, você pode estudar e usar os exemplos que estão no arquivo morto.

imagem

Existem exemplos no SDK para escrever extensões em C ++ e C #, bem como exemplos de conexão com o Renga em Python. A Ajuda da API Renga nas seções Como lista de exemplos que usam as técnicas desta seção.

Exemplos de plugins C ++ e C # demonstram quase todos os recursos da API. Nos exemplos em Python, você encontrará como usá-lo para criar uma propriedade personalizada no Renga a partir de um aplicativo de terceiros, além de automatizar a abertura, o salvamento e o fechamento de um projeto Renga usando um script.

Atualmente, o Renga pode carregar plug-ins de DLLs binárias C ++ e assemblies .NET e, usando linguagens dinamicamente tipadas como Python, VBScript, 1C e outras, você pode acessar a API Renga a partir de programas de terceiros para obter os dados necessários.
Em geral, estamos satisfeitos com a transição para a API COM e as oportunidades que ela abriu para nossos usuários.

Qualquer extensão Renga chamada a partir do Renga deve consistir em um arquivo binário para o plug-in e um arquivo .xml com a extensão .rndesc, com o seguinte conteúdo:

<RengaPlugin>
   <!--   -->
   <Name>Best Plugin</Name>
   <!--   -->
   <Version>1.0</Version>
   <!--    -->
   <Copyright>Copyright text</Copyright>
   <!--   Renga API -->
   <RequiredAPIVersion>2.3</RequiredAPIVersion>
   <!--   cpp/net -->        
   <PluginType>Plugin type</PluginType>
   <!--    -->                     
   <PluginFilename>Best_Plugin.dll</PluginFilename> ->
   <Vendor>Renga</Vendor>                           
</RengaPlugin>

Para conectar a extensão ao Renga, você precisa instalá-lo ou copiá-lo para a pasta de instalação Renga \ Plugins. As informações contidas no arquivo .rndesc são exibidas na guia Extensões da janela Configurações do Renga.

Estamos confiantes de que, armado com o conhecimento adquirido e nosso conhecimento de programação, qualquer desenvolvedor pode escrever uma extensão para o Renga. Mas se você tem uma idéia de expandir o Renga e há problemas com sua implementação, escreva no fórum ou registre uma solicitação no ServiceDesk . Congratulamo-nos com perguntas!

All Articles