{"id":801181,"date":"2020-04-07T23:35:45","date_gmt":"2020-04-08T06:35:45","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=801181"},"modified":"2020-06-17T06:24:14","modified_gmt":"2020-06-17T13:24:14","slug":"converting-3d-geometry-formats-made-simple-using-pyprt","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt","title":{"rendered":"Converting 3D geometry formats made simple using PyPRT"},"author":10452,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23771,22941],"tags":[25781,546372,549072,28391,24341],"industry":[],"product":[36781],"class_list":["post-801181","blog","type-blog","status-publish","format-standard","hentry","category-3d-gis","category-mapping","tag-3d","tag-cityenginesdk","tag-esrirdzurich","tag-geometry","tag-python","product-city-engine"],"acf":{"short_description":"PyPRT is a Python package that allows you to easily and efficiently generate 3D content in Python. You can export your 3D model in many formats.","flexible_content":[{"acf_fc_layout":"content","content":"<p>Have you ever wished that your 3D geometry file was in another format? Maybe you have an OBJ file and you\u2019d prefer a glTF model, or your Collada file would be really great if it had an FBX file extension instead. You might even want to work with many different 3D formats using only one tool.<\/p>\n<p>This is where PyPRT comes in. In my previous post, I introduced our new Python package, called PyPRT. If you haven\u2019t read it and really want to get to know PyPRT, check <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/generating-3d-content-in-python-pyprt-a-new-python-library\/\">it<\/a> out.<\/p>\n<p>Below, you&#8217;ll find a brief recap of PyPRT 3D capabilities. Moreover, we&#8217;re going to discuss the 3D geometry format converter topic. Mixing all that together, PyPRT allows you to edit a 3D geometry while converting it from one format to another.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"content","content":"<h3><strong>PyPRT, in short<\/strong><\/h3>\n<p>PyPRT is a Python package that allows you to easily and efficiently generate 3D content in Python. With PyPRT, you can transform any 2D or 3D data into detailed 3D geometries. This transformation is based on a set of geometric rules encapsulated in what we call a \u201cRule Package\u201d (RPK).<\/p>\n<p>After you provide PyPRT with an initial geometry (a building parcel for instance) and a Rule Package, PyPRT procedurally generates the 3D model driven by this input.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":801221,"id":801221,"title":"proceduralGenerationdiagram","filename":"prceduralGenerationdiagram.png","filesize":60654,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt\/prceduralgenerationdiagram","alt":"Procedural generation of a 3D building","author":"10452","description":"Procedural generation of a building on a parcel using an RPK","caption":"Procedural generation of a building on a parcel using an RPK","name":"prceduralgenerationdiagram","status":"inherit","uploaded_to":801181,"date":"2020-04-07 11:19:23","modified":"2020-04-07 13:24:58","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1037,"height":515,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram.png","medium-width":464,"medium-height":230,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram.png","medium_large-width":768,"medium_large-height":381,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram.png","large-width":1037,"large-height":515,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram.png","1536x1536-width":1037,"1536x1536-height":515,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram.png","2048x2048-width":1037,"2048x2048-height":515,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram-826x410.png","card_image-width":826,"card_image-height":410,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/prceduralGenerationdiagram.png","wide_image-width":1037,"wide_image-height":515}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>PyPRT is useful to:<\/p>\n<ul>\n<li>Generate simple 3D content out of building footprints (LOD2 buildings)<\/li>\n<li>Optimize a 3D geometry design (presented in the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/generating-3d-content-in-python-pyprt-a-new-python-library\/\">first post<\/a>)<\/li>\n<li>Convert a 3D geometry into another format (keep reading to find out more)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"content","content":"<h3><strong>3D geometry formats converter<\/strong><\/h3>\n<p>Nowadays, there are a lot of different formats for 3D geometries. Each of these formats has its own specifications, way of encoding the 3D model and applications where it is used. To read a format, you will use a geometry decoder and, inversely, you will write the geometry using an encoder.<\/p>\n<p>Regarding the model encoders, the formats differ from one another in many ways. For example:<\/p>\n<ul>\n<li>How they store the geometry (vertices, faces, etc\u2026)<\/li>\n<li>If the models color and appearance are considered<\/li>\n<li>If individual objects (e.g. buildings) are stored separately or merged into one big geometry<\/li>\n<\/ul>\n<p>Usually, the 3D data format you will be using is determined by the field you are working in and the software used. For example, the entertainment industry uses a different data format compared to 3D printing applications.<\/p>\n<p>For the most popular 3D formats, format converters do exist which help to go from one specific format to another. These tools are sometimes available online. However, if you want to work with multiple formats, you will need many converter tools.<\/p>\n<p>This is what makes PyPRT so interesting. With PyPRT, you have a <a href=\"https:\/\/esri.github.io\/esri-cityengine-sdk\/html\/esri_prt_codecs.html\">set of geometry formats<\/a> at your disposal and they can be integrated into your Python workflow.<\/p>\n<p>You simply need to give PyPRT your 3D geometry and the name of the desired exporter as input and PyPRT will do the rest.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p>Example: FBX to OBJ converter<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"def convert_3d_file(geometry_file, exporter_name):\r\n   \r\n   init_shape = pyprt.InitialShape(geometry_file)\r\n\r\n   # Identity RPK\r\n   rpk = path_to_file('translateModel.rpk')\r\n   attrs = {'ruleFile': 'bin\/translateModel.cgb', \r\n            'startRule': 'Default$Lot'}\r\n\r\n   # PRT generation = 3D model conversion\r\n   model = pyprt.ModelGenerator([init_shape])\r\n   model.generate_model(\r\n       [attrs], rpk, exporter_name, {'outputPath': '\/tmp\/pyprt_output'})\r\n\r\n\r\n\r\n# In your code\r\nconvert_3d_file(path_to_file('MyModel.fbx'), 'com.esri.prt.codecs.OBJEncoder')","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<h3><\/h3>\n<h3><strong>Demo App: 3D Geometry Visualization on a Web Map<\/strong><\/h3>\n<p>When working with 3D building models, it is interesting to not only visualize their 3D geometry but also to see them in a geographical context. In other words, we want to visualize them on a map.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"youtube","start_time":"0","end_time":"","youtube_video_url":"<iframe title=\"Demo App: 3D Geometry Visualization on a Web Map\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/bCpqZe2U9hc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>"},{"acf_fc_layout":"content","content":"<p>&nbsp;<\/p>\n<p>The video above shows a browser window with a world map. The first thing we do is choose where to place our 3D model.<br \/>\nAt the top right of the window, the upload box allows us to upload a 3D geometry file. Drag and drop your file! The model then appears on the map in the right location.<br \/>\nFinally, we can have a look at our 3D model by moving around the map.<\/p>\n<p>This demo app makes use of three main components.<\/p>\n<ol>\n<li>Firstly, it uses the ArcGIS API for JavaScript for everything related to the mapping and map interactions.<\/li>\n<li>Then, PyPRT takes the uploaded file, deals with the geographical placement of the model and converts it into a Scene Layer Package.<\/li>\n<li>Finally, the ArcGIS API for Python takes care of the workflow with ArcGIS Online (meaning it takes care of the uploading and publishing of the Scene Layer Package). At the end of this process, you can find the Scene Layer in your ArcGIS Online account.<\/li>\n<\/ol>\n<p>In summary, this app allows you to upload a 3D geometry file (OBJ, Collada, FBX, glTF) and visualize the geometry on a map at a desired location.<br \/>\nBehind the scenes, we are using PyPRT to convert the uploaded 3D geometry file into a Scene Layer Package.<br \/>\nYou can easily extend this example app by adding context layers to the map or to make it work with existing building models that inherently contain the georeferenced information for instance.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"content","content":"<h3><strong>How to get PyPRT<\/strong><\/h3>\n<p>The demo app presented above is available in the <a href=\"https:\/\/github.com\/Esri\/pyprt-examples\">pyprt-examples Github repository<\/a>. Please visit the\u00a0<a href=\"https:\/\/esri.github.io\/pyprt\/\">PyPRT page<\/a>\u00a0for more information about the package installation, documentation and examples with ready-to-use rule packages and initial shapes. If you have any questions or feedback about PyPRT, contact me.<\/p>\n"}],"authors":[{"ID":10452,"user_firstname":"Camille","user_lastname":"Lechot","nickname":"Camille Lechot","user_nicename":"clechot","display_name":"Camille Lechot","user_email":"CLechot@esri.com","user_url":"","user_registered":"2020-01-23 15:15:17","user_description":"Camille works as a Product Engineer in the AI Prototypes team. Her main focus is AI in Urban Planning. Camille has a great interest in technology, automation and sustainability.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/02\/CLechot-465x465.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":[{"ID":710952,"post_author":"10452","post_date":"2020-02-02 13:51:40","post_date_gmt":"2020-02-02 21:51:40","post_content":"","post_title":"Generating 3D content in Python: PyPRT, a new Python library","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"generating-3d-content-in-python-pyprt-a-new-python-library","to_ping":"","pinged":"","post_modified":"2020-02-27 03:47:18","post_modified_gmt":"2020-02-27 11:47:18","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=710952","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":124311,"post_author":"6031","post_date":"2018-04-11 04:00:30","post_date_gmt":"2018-04-11 04:00:30","post_content":"","post_title":"Palladio: an open-source CityEngine plugin for Houdini","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"palladio-open-source-cityengine-plugin-for-houdini","to_ping":"","pinged":"","post_modified":"2020-01-29 02:47:35","post_modified_gmt":"2020-01-29 10:47:35","post_content_filtered":"","post_parent":0,"guid":"http:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=124311","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":false,"wide_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Converting 3D geometry formats made simple using PyPRT<\/title>\n<meta name=\"description\" content=\"PyPRT is a package that allows you to easily and efficiently generate 3D content in Python. You can export and convert your 3D geometry in many formats.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Converting 3D geometry formats made simple using PyPRT\" \/>\n<meta property=\"og:description\" content=\"PyPRT is a package that allows you to easily and efficiently generate 3D content in Python. You can export and convert your 3D geometry in many formats.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-17T13:24:14+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt\"},\"author\":{\"name\":\"Camille Lechot\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/cc30bebfdc7a6e65bdacc92b1c3859d2\"},\"headline\":\"Converting 3D geometry formats made simple using PyPRT\",\"datePublished\":\"2020-04-08T06:35:45+00:00\",\"dateModified\":\"2020-06-17T13:24:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt\"},\"wordCount\":8,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"3D\",\"CityEngineSDK\",\"EsriRDZurich\",\"geometry\",\"python\"],\"articleSection\":[\"3D Visualization &amp; Analytics\",\"Mapping\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt\",\"name\":\"Converting 3D geometry formats made simple using PyPRT\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2020-04-08T06:35:45+00:00\",\"dateModified\":\"2020-06-17T13:24:14+00:00\",\"description\":\"PyPRT is a package that allows you to easily and efficiently generate 3D content in Python. You can export and convert your 3D geometry in many formats.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Converting 3D geometry formats made simple using PyPRT\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/cc30bebfdc7a6e65bdacc92b1c3859d2\",\"name\":\"Camille Lechot\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/02\/CLechot-465x465.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/02\/CLechot-465x465.jpg\",\"caption\":\"Camille Lechot\"},\"description\":\"Camille works as a Product Engineer in the AI Prototypes team. Her main focus is AI in Urban Planning. Camille has a great interest in technology, automation and sustainability.\",\"sameAs\":[\"www.linkedin.com\/in\/camille-lechot-40099a11b\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/clechot\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Converting 3D geometry formats made simple using PyPRT","description":"PyPRT is a package that allows you to easily and efficiently generate 3D content in Python. You can export and convert your 3D geometry in many formats.","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:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt","og_locale":"en_US","og_type":"article","og_title":"Converting 3D geometry formats made simple using PyPRT","og_description":"PyPRT is a package that allows you to easily and efficiently generate 3D content in Python. You can export and convert your 3D geometry in many formats.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2020-06-17T13:24:14+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt"},"author":{"name":"Camille Lechot","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/cc30bebfdc7a6e65bdacc92b1c3859d2"},"headline":"Converting 3D geometry formats made simple using PyPRT","datePublished":"2020-04-08T06:35:45+00:00","dateModified":"2020-06-17T13:24:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt"},"wordCount":8,"commentCount":2,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["3D","CityEngineSDK","EsriRDZurich","geometry","python"],"articleSection":["3D Visualization &amp; Analytics","Mapping"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt","name":"Converting 3D geometry formats made simple using PyPRT","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2020-04-08T06:35:45+00:00","dateModified":"2020-06-17T13:24:14+00:00","description":"PyPRT is a package that allows you to easily and efficiently generate 3D content in Python. You can export and convert your 3D geometry in many formats.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/converting-3d-geometry-formats-made-simple-using-pyprt#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Converting 3D geometry formats made simple using PyPRT"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/cc30bebfdc7a6e65bdacc92b1c3859d2","name":"Camille Lechot","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/02\/CLechot-465x465.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/02\/CLechot-465x465.jpg","caption":"Camille Lechot"},"description":"Camille works as a Product Engineer in the AI Prototypes team. Her main focus is AI in Urban Planning. Camille has a great interest in technology, automation and sustainability.","sameAs":["www.linkedin.com\/in\/camille-lechot-40099a11b"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/clechot"}]}},"text_date":"April 7, 2020","author_name":"Camille Lechot","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/clechot","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS CityEngine","tag_data":[{"term_id":25781,"name":"3D","slug":"3d","term_group":0,"term_taxonomy_id":25781,"taxonomy":"post_tag","description":"","parent":0,"count":342,"filter":"raw"},{"term_id":546372,"name":"CityEngineSDK","slug":"cityenginesdk","term_group":0,"term_taxonomy_id":546372,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":549072,"name":"EsriRDZurich","slug":"esrirdzurich","term_group":0,"term_taxonomy_id":549072,"taxonomy":"post_tag","description":"","parent":0,"count":96,"filter":"raw"},{"term_id":28391,"name":"geometry","slug":"geometry","term_group":0,"term_taxonomy_id":28391,"taxonomy":"post_tag","description":"","parent":0,"count":9,"filter":"raw"},{"term_id":24341,"name":"python","slug":"python","term_group":0,"term_taxonomy_id":24341,"taxonomy":"post_tag","description":"","parent":0,"count":171,"filter":"raw"}],"category_data":[{"term_id":23771,"name":"3D Visualization &amp; Analytics","slug":"3d-gis","term_group":0,"term_taxonomy_id":23771,"taxonomy":"category","description":"","parent":0,"count":687,"filter":"raw"},{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2690,"filter":"raw"}],"product_data":[{"term_id":36781,"name":"ArcGIS CityEngine","slug":"city-engine","term_group":0,"term_taxonomy_id":36781,"taxonomy":"product","description":"","parent":36591,"count":83,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=city-engine","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/801181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/10452"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=801181"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/801181\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=801181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=801181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=801181"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=801181"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=801181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}