Autodesk Forge Data Management DotNet Package - autodesk-forge

I wonder if there is a forge data management library for dotnet like design automation package.
https://github.com/Autodesk-Forge/forge-api-dotnet-design.automation
So I could use data management to store the files used in the design automation in an easy way.
I found some samples, but not compact in a DataManagementClient class.

I created my own package with a simple implementation for the OSS.
https://www.nuget.org/packages/ricaun.Autodesk.Forge.Oss
https://github.com/ricaun-io/forge-api-dotnet-oss

We have a .NET SDK that handles Data Management API (among other services).
You can refer to nuget and github.
In this SDK we have classes for each specific Data Management entity, such as:
Hub
Project
Folder
Item
Version
The most recent version (1.9.7) also covers a simple way to handle binary transfers, as described in this blog post.
We are also looking for early adopters of the alpha version of a new SDK for the APS OSS service (refer here)

Related

Export Schedules from Revit Model using Design Automation API

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.

Does command that implements IExternalDBApplication need working instance of Revit application?

Actually, I want to find a way to work with .rvt file without starting Revit Application. I want to create monitoring plugin to track changes in Revit Document Model. I suppose it can be made with Application events DocumentChanged. But it may slow the work with model for users. So I'm trying to find a way to work with .rvt file without starting Revit. So, does command that implements IExternalDBApplication need working instance of Revit application?
Your question is confusing.
I assume you are confused.
There are two ways (and two ways only) to access Revit API functionality:
Install Revit on the desktop and launch an interactive end user session. Within that session, you can set up a .NET Revit add-in to subscribe to certain events and make use of the Revit API functionality within those event handlers.
Make use of the Forge Design Automation API for Revit.
In the latter case, you do not have Revit installed locally.
Instead, you upload your application to the Forge system and make use of the Forge API via HTTP requests to launch a Revit engine in the cloud and process your Revit API functionality.
In both cases, however, there is a running instance of the Revit application somewhere providing the Revit API functionality you make use of. This cannot be avoided.
Some helpful links for you:
Getting started with the Revit desktop .NET API
Forge Design Automation for Revit
The Building Coder discussion on DA4R, Design Automation for Revit
I hope this clarifies.

Connectors in Activiti BPM

Currently we evaluate Activiti as a possible Open Source Business Process Engine. One important requirement is an easy integration of external systems (ECM, CRM, SharePoint, SAP...) within the processes. During research I found some articles claiming that there are no build-in connectors to other systems. The only way to interact with external systems is to invoke java classes (see http://forums.activiti.org/content/how-create-connector and http://books.google.de/books?id=kMldSaOSgPYC&pg=PA100&lpg=PA100&dq=Bonita+Open+Solution+connectors&source=bl&ots=uwzz5OSten&sig=h2wf0q5J3xAxwN3AZ7Vondemnec&hl=de&sa=X&ei=uwBYUtehHoTqswacrYHgDQ&ved=0CIUBEOgBMAc4Cg#v=onepage&q=Bonita%20Open%20Solution%20connectors&f=false)
How complex is the integration of external systems in Activiti processes? Is it true that there are no bulid-in connectors? This would be a showstopper-criteria for us.
best regards and thanks for you reply
Ben
Currently (as version 5.14) Activiti has direct connection to
Alfresco for document repository
Drools for rule tasks
LDAP for groups and users
Mule for sending messages
Camel for sending/receiving messages
To integrate any other external system you need to use Java Service Task, where you can use Java classes to delegate workflow to your external system. These Java classes can take variables from your workflow, can direct to one of its outgoing flows and of course you can use any capability of your external system.

Framework for Mapserver GIS APP

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.

Why do the terms API and an SDK seem to be used interchangeably?

What is the accepted definition of an API compared to the definition of an SDK? Both seem to be used interchangeably, so I'd imagine that some libraries dubbed APIs are in reality SDKs, and vice versa. Also, is there a reason for this distinction?
Thanks!
An API, or application programming interface, defines a set of classes, functions, and structures to be used by an application to make use of some library or subsystem. For example, both the windows multimedia subsystem, and windows sockets subsystem both have their own API. An API is not a concrete entity, you can't point at a file and say that the file itself is an API. An API is merely a specification for a communications protocol that a program needs to use to make use of a library or subsystem.
An SDK, or software development kit, contains tools, documentation, and needed files, to program against 1 or more APIs. Some SDKs, but by no means all, may contain sample code to demonstrate how an API can be used. 2 examples of an SDK are the Windows Platform SDK and the .NET Framework SDK.
The most likely reason the terms are used interchangeably is because sometimes an SDK only has the tools, documentation, and files for a single API, and both the API and SDK share the same name. An example of this would be the SDK for developing winamp plugins.
API - Application Programming Interface. This is what you write code to.
SDK - Software Development Kit. These are the libraries that you need so you can code. An SDK likely has many different api's contained in it.
None of the answers I've seen so far really capture it clearly and completely.
The two terms are not interchangeable and if someone uses them interchangeably, it indicates a lack of understanding or preciseness.
API - Application Programming Interface. Exposed by a class library. Utilized by an application. When you build an application that uses the library, this is the interface your code uses to connect to or call into the library. In other words the set of rules and conventions applications must follow to use the library. The API includes the classes, their methods, the parameter lists for the methods, and other supporting elements (like enumerations, constants and so on). An API is an abstract artifact: You cannot download an API, or install an API. You can describe an API, and you can use one. The library itself is the concrete realization of the API, the delivery mechanism.
SDK - Software Development Kit. This is a concrete thing. You can download an SDK, install it, store it. An SDK includes:
libraries, which, as you know, expose or provide APIs.
header files (if applicable)
documentation - readme files, help files, release notes, reference documentation, programming guides. Realized as .CHM files, pdf documents, etc.
tools - such as compilers, assemblers, linkers, profilers, debuggers, optmizers, test tools, and more.
sample code and sample apps - showing how to use the API
maybe some other stuff that doesn't fit into one of the above categories
A Concrete Example:
the Java SDK is a downloadable, versioned thing. It delivers libraries, tools (on windows: javac.exe, java.exe, jar.exe, etc), all the help files and API doc, and source code for the libraries.
the API for Java is the set of rules your code must follow to invoke the libraries; these rules are described in the API documentation.
An API is an Application Programming Interface -- its something your program can talk to. An SDK usually includes an API along with documentation for the API. An API is not required to contain documentation. An SDK may include the API Components, but will always include the documentation.
APIs can exist within SDKs but not vice versa. SDKs generally contain a complete specifiction of a framework or environment. For example the Java SDK contains a full specification of the Java language plus tools, external libraries and whatever else the vendor decides to throw in there. The java apis are simply the interface to those specifications.