{"id":528,"date":"2013-07-01T11:01:16","date_gmt":"2013-07-01T11:01:16","guid":{"rendered":"https:\/\/blogs.autodesk.com\/autodesk-infrabrasil\/2013\/07\/01\/comeando-com-apis-civil-3d\/"},"modified":"2016-05-17T13:30:22","modified_gmt":"2016-05-17T16:30:22","slug":"comeando-com-apis-civil-3d","status":"publish","type":"post","link":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/","title":{"rendered":"Come\u00e7ando com APIs Civil 3D"},"content":{"rendered":"<p>Por <strong>Augusto Gon\u00e7alves<\/strong>, <a href=\"http:\/\/www.autodesk.com\/joinadn\" target=\"_blank\">Autodesk Developer Network<\/a><\/p>\n<p>Para quem n\u00e3o p\u00f4de participar dos <a href=\"http:\/\/civil3dbr.typepad.com\/blog\/2013\/05\/curso-de-api-de-autocad-civil-3d-gratuito.html\" target=\"_blank\">treinamentos<\/a> na Autodesk, nesta sequ\u00eancia de posts irei abordar os passos necess\u00e1rios para criar um plug-in para o Civil 3D que gera relat\u00f3rios e automatiza algumas tarefas cotidianas.<\/p>\n<p>Este primeiro post abordar\u00e1 os requisitos, conhecimentos b\u00e1sicos e como criar o \u2018esqueleto\u2019 geral. Na sequ\u00eancia, irei abordar os comandos com aplica\u00e7\u00e3o espec\u00edfica.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Requisitos<\/span><\/strong><\/p>\n<p>A plataforma de desenvolvimento utilizada nos treinamentos \u00e9 o Visual Basic .NET, dispon\u00edvel gratuitamente para treinamento na vers\u00e3o Express. Para o Civil 3D 2012, 2013 e 2014, utilizamos a vers\u00e3o Visual Basic 2010. Apesar de atualmente a vers\u00e3o 2012 estar dispon\u00edvel, a vers\u00e3o suportada \u00e9 a 2010. O download est\u00e1 dispon\u00edvel em <a title=\"http:\/\/www.microsoft.com\/visualstudio\/ptb\/downloads#d-2010-express\" href=\"http:\/\/www.microsoft.com\/visualstudio\/ptb\/downloads#d-2010-express\">http:\/\/www.microsoft.com\/visualstudio\/ptb\/downloads#d-2010-express<\/a> (ou direto em <a title=\"http:\/\/go.microsoft.com\/?linkid=9709929\" href=\"http:\/\/go.microsoft.com\/?linkid=9709929\">http:\/\/go.microsoft.com\/?linkid=9709929<\/a>).<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b0192abd0c326970d-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px\" title=\"Visual Basic Express 2010\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b0192abd0c356970d-pi\" alt=\"Visual Basic Express 2010\" width=\"471\" height=\"332\" border=\"0\" \/><\/a><\/p>\n<p><strong><span style=\"text-decoration: underline\">Conhecimentos b\u00e1sicos<\/span><\/strong><\/p>\n<p>Conhecimentos em VB.NET s\u00e3o recomendados. Existem diversos tutoriais na internet, v\u00e1rios livros e artigos. Um material interessante \u00e9 o nosso <a href=\"http:\/\/usa.autodesk.com\/adsk\/servlet\/index?siteID=123112&amp;id=18162650\">My First AutoCAD Plugin<\/a>, que passa conceitos de VB.NET e API AutoCAD. Como o Civil 3D \u00e9 baseado em AutoCAD, estes conhecimentos ser\u00e3o aplic\u00e1veis e \u00fateis.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Criando um Plugin<\/span><\/strong><\/p>\n<p>M\u00e3os a obra! Abra o <strong>Visual Basic 2010 Express<\/strong> e escolha a op\u00e7\u00e3o \u2018New Project\u2019. O projeto \u00e9 a unidade b\u00e1sica para se criar um plugin, e cada projeto criado ir\u00e1 gerar uma DLL que poder\u00e1 ser carregada no Civil 3D. Neste curso, nunca abra um arquivo .vb avulso, este n\u00e3o cont\u00e9m os dados necess\u00e1rios, abra sempre o projeto via menu \u2018Open Project\u2019.<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b019104078c5e970c-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px\" title=\"Menu novo projeto\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b019104078c75970c-pi\" alt=\"Menu novo projeto\" width=\"336\" height=\"203\" border=\"0\" \/><\/a><\/p>\n<p>Agora selecione a op\u00e7\u00e3o \u2018Class Library\u2019, que significa que este projeto ir\u00e1 gerar uma DLL como resultado. D\u00ea um nome para o projeto, neste exemplo \u2018ProjetoCivil3DBR\u2019. No nome, n\u00e3o utilize espa\u00e7os e\/ou caracteres especiais (acento, pontua\u00e7\u00e3o, etc.).<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b019104078c9b970c-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px\" title=\"Formul\u00e1rio de novo projeto\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b0192abd0c3af970d-pi\" alt=\"Formul\u00e1rio de novo projeto\" width=\"479\" height=\"271\" border=\"0\" \/><\/a><\/p>\n<p>Por limita\u00e7\u00e3o, a vers\u00e3o Express n\u00e3o pergunta onde o projeto ser\u00e1 salvo. Para escolher, v\u00e1 ao menu e escolha \u2018Save All\u2019 (ou Ctrl+Sifth+S). Escolha uma pasta do seu computador. Evite pastas remotas ou na rede, o .NET bloqueia estas op\u00e7\u00f5es.<\/p>\n<p>Com o projeto aberto, a tela do Visual Basic 2010 Express deve ser algo como a tela abaixo. Note o <em>Solution Explorer<\/em> ao lado direito, caso n\u00e3o veja esta tela, selecione no menu <em>View<\/em>, submenu <em>Other Windows<\/em>. Todos os arquivos .vb dispon\u00edveis estar\u00e3o listados nesta aba.<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b019104078cdb970c-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px\" title=\"Tela geral do Visual Basic Express\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b0192abd0c3ee970d-pi\" alt=\"Tela geral do Visual Basic Express\" width=\"476\" height=\"425\" border=\"0\" \/><\/a><\/p>\n<p>Para criarmos c\u00f3digos espec\u00edficos para o Civil 3D \u00e9 necess\u00e1rio incluir as bibliotecas (ou DLL do ingl\u00eas <em>Dynamic Link Library<\/em>), dispon\u00edveis na pasta onde foi instalado. Clique 2x em <em>My Project<\/em> da aba <em>Solution Explorer<\/em>. Na janela que se abrir\u00e1, selecione a aba <em>References <\/em>e finalmente clique em <em>Add<\/em> para adicionar as bibliotecas.<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b01901e11937e970b-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px\" title=\"Lista de refer\u00eancias\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b019104078d24970c-pi\" alt=\"Lista de refer\u00eancias\" width=\"477\" height=\"270\" border=\"0\" \/><\/a><\/p>\n<p>No formul\u00e1rio de <em>Add Reference<\/em> da figura abaixo, selecione as refer\u00eancias (ou bibliotecas) do AutoCAD <strong>AcMgd<\/strong>, <strong>AcDbMgd<\/strong> e <strong>AcCoreMgd<\/strong> e as refer\u00eancias do Civil 3D <strong>AecBaseMgd<\/strong> e <strong>AeccDbMgd<\/strong>. Note que na vers\u00e3o Civil 3D 2012 (e anteriores) n\u00e3o existe a AcCoreMgd.<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b01901e1193b2970b-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px\" title=\"Adicionando as refer\u00eancias\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b0192abd0c454970d-pi\" alt=\"Adicionando as refer\u00eancias\" width=\"477\" height=\"511\" border=\"0\" \/><\/a><\/p>\n<p>Finalmente marque as refer\u00eancias como <em>Copy Local<\/em> igual a <em>False <\/em>na aba <em>Property.<\/em> Caso n\u00e3o veja esta aba, habilite atrav\u00e9s do menu <em>View, Other Windows.<\/em> Este procedimento \u00e9 necess\u00e1rio para que o Civil 3D execute corretamente o plugin.<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b0192abd0c469970d-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px\" title=\"Op\u00e7\u00e3o Copy Local igual a False\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b01901e119403970b-pi\" alt=\"Op\u00e7\u00e3o Copy Local igual a False\" width=\"478\" height=\"279\" border=\"0\" \/><\/a><\/p>\n<p>Est\u00e1 conclu\u00edda a etapa de configura\u00e7\u00e3o do projeto, que pode ser reutilizada para qualquer novo projeto VB.NET para o AutoCAD Civil 3D. Podemos come\u00e7ar com o c\u00f3digo (rotina) que ir\u00e1 executar as opera\u00e7\u00f5es que desejamos.<\/p>\n<p><span style=\"text-decoration: underline\"><strong>Nosso primeiro comando: contar corredores<\/strong><\/span><\/p>\n<p>O objetivo deste post n\u00e3o \u00e9 criar um comando funcional ou complexo, mas apenas preparar a funda\u00e7\u00e3o. Ent\u00e3o o comando deste exemplo ser\u00e1 bem simples, com objetivo de verificar que tudo funciona: contar a quantidade de corredores no documento (projeto) e mostrar na linha de comando do Civil 3D.<\/p>\n<p>Para o Civil 3D, cada rotina <em>public sub <\/em>\u00e9 um comando. Este deve conter uma marca\u00e7\u00e3o especial (atributo do .NET) indicando o nome que ser\u00e1 executado, neste caso <em>contarCorredores. <\/em>Note que este nome n\u00e3o pode conter espa\u00e7os.<\/p>\n<p>Na figura abaixo pode ser visto o <strong>Class1.vb <\/strong>com o c\u00f3digo. Abaixo da figura est\u00e1 o respectivo c\u00f3digo, copie e cole no Visual Basic 2010 Express. Retire eventuais linhas em branco remanescentes\u2026<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b01901e119418970b-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px\" title=\"C\u00f3digo no Visual Basic Express\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b0192abd0c493970d-pi\" alt=\"C\u00f3digo no Visual Basic Express\" width=\"479\" height=\"279\" border=\"0\" \/><\/a><\/p>\n<div style=\"background: white\">\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #0000ff\"><span style=\"font-size: 8pt\">Imports<\/span><\/span><span style=\"font-size: 8pt;color: #000000\"> Autodesk.AutoCAD.Runtime<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #0000ff\"><span style=\"font-size: 8pt\">Imports<\/span><\/span><span style=\"font-size: 8pt;color: #000000\"> Autodesk.AutoCAD.ApplicationServices<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #0000ff\"><span style=\"font-size: 8pt\">Imports<\/span><\/span><span style=\"font-size: 8pt;color: #000000\"> Autodesk.AutoCAD.EditorInput<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">\u00a0<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #0000ff\"><span style=\"font-size: 8pt\">Imports<\/span><\/span><span style=\"font-size: 8pt;color: #000000\"> Autodesk.Civil.ApplicationServices<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">\u00a0<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #0000ff\"><span style=\"font-size: 8pt\">Public<\/span><\/span><span style=\"font-size: 8pt\"> <span style=\"color: #0000ff\">Class<\/span> <\/span><span style=\"font-size: 8pt;color: #2b91af\">Class1<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0 &lt;<\/span><\/span><span style=\"font-size: 8pt\"><span style=\"color: #2b91af\">CommandMethod<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #a31515\">&#8220;contarCorredores&#8221;<\/span><span style=\"color: #000000\">)&gt; _<\/span><\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0 <\/span><\/span><span style=\"font-size: 8pt\"><span style=\"color: #0000ff\">Public<\/span> <span style=\"color: #0000ff\">Sub<\/span><span style=\"color: #000000\"> CmdQuantidadeCorredores()<\/span><\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 8pt;color: #008000\">&#8216; acessar o Editor (linha de comando)<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 8pt\"><span style=\"color: #0000ff\">Dim<\/span><span style=\"color: #000000\"> ed <\/span><span style=\"color: #0000ff\">As<\/span> <span style=\"color: #2b91af\">Editor<\/span><span style=\"color: #000000\"> = <\/span><span style=\"color: #2b91af\">Application<\/span><span style=\"color: #000000\">.<\/span><\/span><\/span><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">DocumentManager.<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">\u00a0\u00a0\u00a0\u00a0\u00a0 MdiActiveDocument.<\/span><\/span><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">Editor<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">\u00a0<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 8pt;color: #008000\">&#8216; acessar o CivilDocument, que gerencia <\/span><\/span><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #008000\">os dados do Civil 3D<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 8pt\"><span style=\"color: #0000ff\">Dim<\/span><span style=\"color: #000000\"> civilDoc <\/span><span style=\"color: #0000ff\">As<\/span> <span style=\"color: #2b91af\">CivilDocument<\/span><span style=\"color: #000000\"> = <\/span><\/span><\/span><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt\"><span style=\"color: #2b91af\">CivilApplication<\/span><span style=\"color: #000000\">.ActiveDocument<\/span><\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">\u00a0<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 8pt;color: #008000\">&#8216; finalmente escrevemos a quantidade<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 8pt;color: #008000\">&#8216; de corredores neste documento<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">\u00a0\u00a0\u00a0 ed.WriteMessage(<\/span><\/span><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt\"><span style=\"color: #a31515\">&#8220;Projeto cont\u00eam {0} corredores&#8221;<\/span><span style=\"color: #000000\">,<\/span><\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"font-size: 8pt;color: #000000\">\u00a0\u00a0\u00a0\u00a0\u00a0 civilDoc.CorridorCollection.Count)<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #000000\"><span style=\"font-size: 8pt\">\u00a0 <\/span><\/span><span style=\"font-size: 8pt\"><span style=\"color: #0000ff\">End<\/span> <\/span><span style=\"font-size: 8pt;color: #0000ff\">Sub<\/span><\/span><\/p>\n<p style=\"margin: 0px\"><span style=\"font-family: Courier New\"><span style=\"color: #0000ff\"><span style=\"font-size: 8pt\">End<\/span><\/span> <span style=\"font-size: 8pt;color: #0000ff\">Class<\/span><\/span><\/p>\n<\/div>\n<p>O Civil 3D n\u00e3o reconhece c\u00f3digo, apenas DLL. Ent\u00e3o \u00e9 necess\u00e1rio \u201cconstruir\u201d uma DLL atrav\u00e9s do comando <em>Build<\/em> no menu <em>Debug. <\/em>Esta op\u00e7\u00e3o ir\u00e1 gerar um arquivo .dll na pasta onde o projeto foi salvo, conforme o caminho listado abaixo.<\/p>\n<p>\u2026\\ProjetoCivil3DBR\\ProjetoCivil3DBR\\bin\\Release\\<strong>ProjetoCivil3DBR.dll<\/strong><\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b019104078d97970c-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px\" title=\"Menu Debug, Build\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b0192abd0c4b3970d-pi\" alt=\"Menu Debug, Build\" width=\"423\" height=\"109\" border=\"0\" \/><\/a><\/p>\n<p>Estamos prontos para executar este comando no Civil 3D!<\/p>\n<p>Inicie o Civil 3D e, preferencialmente, abra um .dwg que contenha um corredor. Para carregar um plugin\u00a0 .NET execute o comando NETLOAD. Escolha a .dll criada pelo projeto (neste exemplo a <strong>ProjetoCivil3DBR.dll<\/strong>). Ao carregar, o Civil 3D 2014 deve exibir uma mensagem relacionada a seguran\u00e7a. Para este exemplo, clique em <em>Load<\/em>. Para mais detalhes de seguran\u00e7a, veja <a href=\"http:\/\/adndevblog.typepad.com\/autocad\/2013\/03\/autocad-2014-and-security.html\">este post<\/a>. Execute nosso comando customizado CONTARCORREDORES. O resultado deve ser como mostrado abaixo.<\/p>\n<p><a href=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b01901e119446970b-pi\"><img loading=\"lazy\" decoding=\"async\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px\" title=\"Linha de comando do Civil 3D\" src=\"http:\/\/civil3dbr.typepad.com\/.a\/6a01538e6fd9d0970b019104078daf970c-pi\" alt=\"Linha de comando do Civil 3D\" width=\"301\" height=\"108\" border=\"0\" \/><\/a><\/p>\n<p><strong>Parab\u00e9ns! Plugin completo!<\/strong><\/p>\n<p>No pr\u00f3ximo post iremos adicionar mais c\u00f3digo para criar um relat\u00f3rio de tra\u00e7ado horizontal, tabelas de curva de bordo e outros.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Leitura para a semana<\/span><\/strong><\/p>\n<p>Alguns t\u00f3picos adicionais de programa\u00e7\u00e3o para AutoCAD e Civil 3D:<\/p>\n<ul>\n<li><a href=\"http:\/\/usa.autodesk.com\/adsk\/servlet\/index?siteID=123112&amp;id=18162650\" target=\"_blank\">My First AutoCAD Plugin<\/a><\/li>\n<li><a href=\"http:\/\/www.autodesk.com\/autocad-net-developers-guide\" target=\"_blank\">AutoCAD .NET Developer Guide<\/a><\/li>\n<li><a href=\"http:\/\/adndevblog.typepad.com\/infrastructure\/\" target=\"_blank\">ADN DevBlog \u2013 Infrastructure<\/a><\/li>\n<li><a href=\"http:\/\/civilizeddevelopment.typepad.com\/\" target=\"_blank\">Civilized Development<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Por Augusto Gon\u00e7alves, <a href=\"http:\/\/www.autodesk.com\/joinadn\" target=\"_blank\">Autodesk Developer Network<\/a><\/p>\n<p>Para quem n\u00e3o p\u00f4de participar dos <a href=\"http:\/\/civil3dbr.typepad.com\/blog\/2013\/05\/curso-de-api-de-autocad-civil-3d-gratuito.html\" target=\"_blank\">treinamentos<\/a> na Autodesk, nesta sequ\u00eancia de posts irei abordar os passos necess\u00e1rios para criar um plug-in para o Civil 3D que gera relat\u00f3rios e automatiza algumas tarefas cotidianas.<\/p>\n<p>Este primeiro post abordar\u00e1 os requisitos,<\/p>\n","protected":false},"author":1431,"featured_media":1143,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[1152,1215,1212,1221,1218],"class_list":["post-528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mundo-aec-autodesk","tag-api","tag-programacao","tag-relatorios","tag-vb","tag-visual-basic"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Come\u00e7ando com APIs Civil 3D | Mundo AEC - Autodesk<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pedro Soethe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/\"},\"author\":{\"name\":\"Pedro Soethe\",\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/#\\\/schema\\\/person\\\/3707a63eb2b5ba94534d68d7e1a65e9c\"},\"headline\":\"Come\u00e7ando com APIs Civil 3D\",\"datePublished\":\"2013-07-01T11:01:16+00:00\",\"dateModified\":\"2016-05-17T16:30:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/\"},\"wordCount\":993,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/wp-content\\\/uploads\\\/sites\\\/84\\\/2013\\\/07\\\/6a01538e6fd9d0970b0192abd0c356970d.png\",\"keywords\":[\"API\",\"Programa\u00e7\u00e3o\",\"Relat\u00f3rios\",\"VB\",\"Visual Basic\"],\"articleSection\":[\"Mundo AEC - Autodesk\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/\",\"url\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/\",\"name\":\"Come\u00e7ando com APIs Civil 3D | Mundo AEC - Autodesk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/wp-content\\\/uploads\\\/sites\\\/84\\\/2013\\\/07\\\/6a01538e6fd9d0970b0192abd0c356970d.png\",\"datePublished\":\"2013-07-01T11:01:16+00:00\",\"dateModified\":\"2016-05-17T16:30:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/#\\\/schema\\\/person\\\/3707a63eb2b5ba94534d68d7e1a65e9c\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/wp-content\\\/uploads\\\/sites\\\/84\\\/2013\\\/07\\\/6a01538e6fd9d0970b0192abd0c356970d.png\",\"contentUrl\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/wp-content\\\/uploads\\\/sites\\\/84\\\/2013\\\/07\\\/6a01538e6fd9d0970b0192abd0c356970d.png\",\"width\":471,\"height\":332},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/comeando-com-apis-civil-3d\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Come\u00e7ando com APIs Civil 3D\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/#website\",\"url\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/\",\"name\":\"Mundo AEC - Autodesk\",\"description\":\"Blog Oficial sobre solu\u00e7\u00f5es da Autodesk Brasil\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/#\\\/schema\\\/person\\\/3707a63eb2b5ba94534d68d7e1a65e9c\",\"name\":\"Pedro Soethe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/wp-content\\\/uploads\\\/sites\\\/84\\\/2021\\\/06\\\/30\\\/Capture-150x150.jpg\",\"url\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/wp-content\\\/uploads\\\/sites\\\/84\\\/2021\\\/06\\\/30\\\/Capture-150x150.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/wp-content\\\/uploads\\\/sites\\\/84\\\/2021\\\/06\\\/30\\\/Capture-150x150.jpg\",\"caption\":\"Pedro Soethe\"},\"description\":\"Pedro Luis Soethe Cursino \u00e9 formado em Engenharia Civil pela Universidade de Taubat\u00e9, tem p\u00f3s-gradua\u00e7\u00e3o em Georreferenciamento pela Faculdade de Pirassununga e em Estradas e Vias Urbanas pela FESP. Trabalha a mais de 15 anos na \u00e1rea de infraestrutura e \u00e9 respons\u00e1vel por v\u00e1rios projetos executados no Brasil em diversas disciplinas como estradas, projetos urbanos, loteamentos, infraestrutura hidro-sanit\u00e1ria, drenagem, terraplanagem entre outras.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/pedrosoethe\\\/\"],\"url\":\"https:\\\/\\\/blogs.autodesk.com\\\/mundoaec\\\/author\\\/pedrosoethe\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come\u00e7ando com APIs Civil 3D | Mundo AEC - Autodesk","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/","twitter_misc":{"Written by":"Pedro Soethe","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/#article","isPartOf":{"@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/"},"author":{"name":"Pedro Soethe","@id":"https:\/\/blogs.autodesk.com\/mundoaec\/#\/schema\/person\/3707a63eb2b5ba94534d68d7e1a65e9c"},"headline":"Come\u00e7ando com APIs Civil 3D","datePublished":"2013-07-01T11:01:16+00:00","dateModified":"2016-05-17T16:30:22+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/"},"wordCount":993,"commentCount":0,"image":{"@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-content\/uploads\/sites\/84\/2013\/07\/6a01538e6fd9d0970b0192abd0c356970d.png","keywords":["API","Programa\u00e7\u00e3o","Relat\u00f3rios","VB","Visual Basic"],"articleSection":["Mundo AEC - Autodesk"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/","url":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/","name":"Come\u00e7ando com APIs Civil 3D | Mundo AEC - Autodesk","isPartOf":{"@id":"https:\/\/blogs.autodesk.com\/mundoaec\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/#primaryimage"},"image":{"@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-content\/uploads\/sites\/84\/2013\/07\/6a01538e6fd9d0970b0192abd0c356970d.png","datePublished":"2013-07-01T11:01:16+00:00","dateModified":"2016-05-17T16:30:22+00:00","author":{"@id":"https:\/\/blogs.autodesk.com\/mundoaec\/#\/schema\/person\/3707a63eb2b5ba94534d68d7e1a65e9c"},"breadcrumb":{"@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/#primaryimage","url":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-content\/uploads\/sites\/84\/2013\/07\/6a01538e6fd9d0970b0192abd0c356970d.png","contentUrl":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-content\/uploads\/sites\/84\/2013\/07\/6a01538e6fd9d0970b0192abd0c356970d.png","width":471,"height":332},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.autodesk.com\/mundoaec\/comeando-com-apis-civil-3d\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.autodesk.com\/mundoaec\/"},{"@type":"ListItem","position":2,"name":"Come\u00e7ando com APIs Civil 3D"}]},{"@type":"WebSite","@id":"https:\/\/blogs.autodesk.com\/mundoaec\/#website","url":"https:\/\/blogs.autodesk.com\/mundoaec\/","name":"Mundo AEC - Autodesk","description":"Blog Oficial sobre solu\u00e7\u00f5es da Autodesk Brasil","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.autodesk.com\/mundoaec\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.autodesk.com\/mundoaec\/#\/schema\/person\/3707a63eb2b5ba94534d68d7e1a65e9c","name":"Pedro Soethe","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-content\/uploads\/sites\/84\/2021\/06\/30\/Capture-150x150.jpg","url":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-content\/uploads\/sites\/84\/2021\/06\/30\/Capture-150x150.jpg","contentUrl":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-content\/uploads\/sites\/84\/2021\/06\/30\/Capture-150x150.jpg","caption":"Pedro Soethe"},"description":"Pedro Luis Soethe Cursino \u00e9 formado em Engenharia Civil pela Universidade de Taubat\u00e9, tem p\u00f3s-gradua\u00e7\u00e3o em Georreferenciamento pela Faculdade de Pirassununga e em Estradas e Vias Urbanas pela FESP. Trabalha a mais de 15 anos na \u00e1rea de infraestrutura e \u00e9 respons\u00e1vel por v\u00e1rios projetos executados no Brasil em diversas disciplinas como estradas, projetos urbanos, loteamentos, infraestrutura hidro-sanit\u00e1ria, drenagem, terraplanagem entre outras.","sameAs":["https:\/\/www.linkedin.com\/in\/pedrosoethe\/"],"url":"https:\/\/blogs.autodesk.com\/mundoaec\/author\/pedrosoethe\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/posts\/528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/users\/1431"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/comments?post=528"}],"version-history":[{"count":0,"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/posts\/528\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/media\/1143"}],"wp:attachment":[{"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/media?parent=528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/categories?post=528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.autodesk.com\/mundoaec\/wp-json\/wp\/v2\/tags?post=528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}