Need help on the following question:
We have a set of DWG files which we want to manipulate (in a program), put some layers and put some polylines on the original DWG and save the DWG (preferably using Python or C++). This has to be done on a virtual machine.
Please let me know
If this can be done on Linux machine and also what license shall be required.
If not then for windows what license shall be required.
Can this be done without installing Autodesk on the VM (utilizing only the runtime). If so how.
Thanks so much.
You have tagged autodesk-designautomation, so using Forge Design Automation this can done, it doesn't require any license or hardware, it is a cloud service.
Refer https://forge.autodesk.com/en/docs/design-automation/v3/developers_guide/overview/
Tutorial - https://learnforge.autodesk.io/#/tutorials/modifymodels
Pricing - https://forge.autodesk.com/pricing
Related
I have running Autodesk Forge Viewer and I was wondering if there is a know feature to add custom Lighting and Environments from an HDRI file since I was unable to find any helpful information in the Documentation. Does the Viewer support this feature or how would one go about adding a custom environment.
Customizing the environment maps is not an officially supported feature, but it can be done with a bit of hacking. The viewer uses DDS files for environment maps. Check out https://github.com/wallabyway/adding-shadows#sharper-ibl-reflections-image-based-light-ie-skybox for more info.
I have found a plug-in to manually export schedules (rebar, production bom, material lists) from Revit models. However, our company is looking to automate this and take out the human required element of exporting these schedules.
I have not, so far, found a way in the Forge API (Revit Design Automation API) to access these schedules like a can with a custom plug in.
Is this support coming or is there a place to vote on this capability?
Thanks,
Chris
The Forge Design Automation API for Revit enables you to run the same .NET Revit API code as the Revit.exe executable on the Windows desktop. Therefore, you can probably convert the existing desktop add-in to run within the Forge environment. There is no missing capability, not additional support needed, and no need to vote for anything. The Building Coder has explored and documented how to migrate and convert existing desktop Revit API add-in code to run in the Forge design automation environment in the topic group on DA4R – Design Automation for Revit.
I am an App developer with no experience with AutoCAD at all, and for my current project I need to convert DWG files into Spatial Data - ESRI Shapefile / GeoJSON, etc.
Given that DWG is a proprietary format owned by Autodesk, the Autodesk Forge API becomes my only option to interpret such file. I have been evaluating the Model Derivative API for a week now, and what I found is that it won't work for my purposes. It has only 3 output formats (f2d, f3d, rvt) for DWG files and none of them fits my purpose.
For this reason, I started to look at others API's in the platform and ended up finding the Design Automation API which might be helpful, however it lacks documentation.
One of the examples in the API is the PlotToPdf activity that exports a DWG into a PDF. I wonder if there is a way to export other formats other than PDF.
I tried to find the possible "commands" in the interface by listing all the activities, workItems and AppPackages but none of these end-points returned me any useful information.
So here are my questions?
How can I can convert a DWG into a non Autodesk format? Being more specifically, the output must be an open format that I can interpret without using proprietary tools.
If the answer for the first question is Autodesk Forge API, which one should I use?
In case I should be using Design Automation API for that, where can I find complementary documentation once the one provided is lacking details?
I would say that Design Automation API is the best option if you don't have (or don't want) AutoCAD running (or any other DWG compatible desktop app).
To be complete: Design Automation includes an instance of AutoCAD running on the cloud, where you can upload a .DWG with a sequence of commands (script) and a .NET custom app to execute more advanced routines. Then download the results. By default, neither AutoCAD nor Design Automation can export to GIS formats (like those you mentioned), only some verticals, like Civil 3D or Map 3D, but these are not available on Design Automation. As you mentioned, Model Derivative API (via REST calls) don't have what you need, it's focused on metadata, not the specifications of the geometry.
Design Automation API supports the same commands AutoCAD Console does. For DXF creation, you can use DXFOUT command, your script would be something like (not tested):
FILEDIA
0
DXFOUT
outputfilename.dxf
QUIT
As per comment, it's a huge effort to just convert to .DXF. I'm not familiar with other libraries do perform the same task.
Now I'm not an expert on GIS data formats, but you may consider move from .DWG to .DXF then an approach like described here.
I don't quite understand this point that you are making in the comments:
I would only use the API to convert DWG to DXF, which means a huge waste of resources considering the monthly cost of the API and the time to develop and maintain the interface.
Can you clarify? Are you saying that transaction cost for Design Automation is too high? Or are you saying that development cost associated with deploying the script that Augusto gave you is too high?
Thanks
Right now the derivativeApi is the way to go for this: You can convert any input format from this list (https://developer.autodesk.com/en/docs/model-derivative/v2/overview/supported-translations/) to the "intermediate format" svf and the convert the svf file to obj for example. This will also create a material file which can be downloaded seperately. I am evaluation the forge api right now and can produce obj from dwg files right now.
I'm trying to display on the web (read as create a GIS Web app) topo data layers stored in a POSTGIS/POSTGRES spatial database using mapserver. My problem is, although i happened to come across different gis frameworks that I could use, my lack of experience on using mapserver in the first place makes me indecisive of which framework to use. So what is the easiest framework out there to use? I'm using a MS4W pre-packaged mapserver binaries, and i've installed almost all of the additional packages (frameworks) from their site.
Thanks for the help!:) I
Mapfish (I think python and C based and ideal with mapserver)
GeoServer (java based)
Featureserver (RESTful, light and effective)
Other interesting links:
GEOEXT provides an excellent extension for openlayers
Boston GIS provides excellent tutorials so does Paul Ramsey and Chris Schmidt
The mother GIS - Free Open Source Software OSGEO
FreeGIS - Continually updated list of free and related GIS software
I've used Geoserver and Feature server on multiple occasions, and never got deep into mapserver. I know that Mapserver has a big community and they love helping out, check them out on IRC and their mailing list.
We have developed an interface called OWGIS for displaying GIS data.
Website: http://www.owgis.org
Description:
The OWGIS (Open WebGIS) is an OpenSource Java Servlets web application that creates WebGIS sites by automatically writing HTML and JavaScript code. The WebGIS sites are configured by XML files that define which layers will be displayed on the maps as well as the texts to be used on the interface. OWGIS's most notable features include animations, veritcal profiles and vertical transects, various color palettes, dynamic maps, downloadable data, and multilingual interfaces. All these features are created automatically without any additional web programming.
Since you already got MS4W installed. The easiest way to publish a map service from Postgres is from MapServer which is component of the ms4w.
To start publish wms from MapServer,
1) Read thru the documentation of Mapfile which is the service definition file of how the WMS configured.
2) Read the ogr postgis connection documentation. You would be able to write the database connection follow the instruction pretty easily.
3) Once you got the valid Mapfile with correct postgis connection string info, you are able to publish the WMS for your topos.
MapServer is very powerful and easy to use. The file based service provide a lot of flexibility which is critical when you need publish something dynamically.
GeoServer is very popular too and has a gui which is extremely easy to use, by several click and your services are ready to go.
Other solutions are also available as well. But consider the community user base and tech support. I would recommend using MapServer or Geoserver for your case. We had our Mapserver holding USGS topo services as well, which is very stable,flexible and salable so just some FYI.
Hope it is helpful.
(I hope this is a valid question)
As I stated in my title, I'm looking for a fairly easy to moderately easy idea for some sort of online raster analysis map. I'm familiar with ESRI and their really awesome API, as I'm hoping to tackle something on that front. I'm also open to using the mapstraction lib.
Does anyone have any ideas for me?
Thanks!!
I'm not sure you mean image rasters or data rasters. This uses open source packages: MapServer and an AJAX client MsCross. It generates data rasters on the server and displays them in the browser. The rasters are contour plots for a plume of contamination in groundwater.
If you are already familiar with ESRI, then you should look at the ESRI Flex API ESRI Javascript API. You can use both of them to fire up Server side Geoprocessing services.
There are so many ways to skin the cat...
You may want to check the Publishing a GeoProcessing Service section of ESRI help
The basic idea is this... you use ArcMap/ArcCatalog to author a Geoprocessing Model (I am assuming you are familiar with this), which you later expose in an ArcGIS Server as a Geoprocessing Service. Publishing a model as a service is pretty easy provided you already have an ArcGIS Server configured - see the links I provided you above.
Then you can either use the free ArcGIS Explorer application to consume that GeoProcessing Service or write a webapp using Flex, or Javascript or DotNet or even python to consume that webservice.
And yeah, don't consume the webservice synchronously - stick with async.
You do unfortunately not write, what exactly you need. Do you want to display maps on a web page or in a application?
In the latter case i would recommend using http://www.openstreetmap.org/ it seems to be a little tricky in the beginning, buts data base gets better and better. A number of renderes exist, which you can integrate into your application.