ImportFromFME Published


#1

ImportFromFME is a package that contains nodes allowing you to import data into Dynamo through Safe Software’s FME Spatial ETL tool.

FME has readers for over 400 CAD, GIS, Spatial Database, BIM and online formats. For more information, please visit www.safe.com.

This is a early version of this package, and we welcome all suggestions for improvements.

The nodes are presently Python based, using FME’s .NET API. They should serve as good examples for any who wish to do their own FME integrations into Dynamo.

There are two nodes in this package:

ImportTableFromFME - imports tables from any supported FME format (ie. Excel, Oracle, SQL Server, Geodatabase) as a list of rows, similar to the Excel or CSV reader nodes.

ImportGeometryFromFME - imports geometry from most supported FME formats, with the output separated by geometry type. If the source data has coordinate system information, it can be automatically reprojected to the local Revit coordinate system, based on Project Location and Units.

Requirements

Dynamo Revit, version 1.3.2 or newer
FME 2018.0 or newer must be installed and licensed

Installation

The package can be installed from the Package Manager

Usage

ImportTableFromFME has three inputs:

FME_Home_Folder: This is the location of the root FME installation folder. This is needed in order to connect to the FMEObjects .NET dll. Please use a String node to supply the location.

FME_Connection_String: This is a very long string that provides FME Objects with the reader information, including format, dataset, coordinate system, table to read etc. You can create this string using the utility FMEPCConfg.exe, which can be found in the FME installation folder. Run the utility, then create a Reader connection to the dataset. Copy the Connection Parameters string from the Connection text box and paste it into a String node in your graph. The utility should be run on the same computer as Revit, to ensure that FMEObjects will have the required database connections.

FMEPCConfig2

FME_Logfile: This is an optional input that provides the location of the FME log file created by the import. This can be useful when an import fails. This input should be a String as well.

ImportFMEGeometry uses the same inputs as above, as well as a Reproject switch.

It should be able to import most types of geometry into Dynamo. At present, it will ignore rasters, point clouds and text. If the Reproject switch is set to True, and the source data has a coordinate system, the node will get the Project Location, Rotation and Unit from the Revit file and use that to reproject the source data to match the Revit data.

The node has a separate output for each geometry type to make it easier to choose the geometry you want to use. It also has a separate output for the Donut Hole polygons, since Donuts are not supported in Dynamo (as far as I could tell, anyway).

There is also an output for any features that creates a Dynamo geometry creation error. This output includes the Dynamo error, feature geometry type, FME feature type, and list of the coordinate points.

Example

Importing Pipes and Structures from Civil-3D file, in Illinois State Plane coordinate system.

Civil-3D

Dynamo


#2

#3

Very nice, will be trying it soon! So to be clear, this does not require you to author anything in FME because the connection string generator utility builds the connection string based on the data you’re reading and sending back to Dynamo, correct?


#4

Hi David,
Yes, the node is just using the FME reader, not any of the Workbench processing. If you want to pre-process the data with FME, you can turn your workspace into a Custom Reader, and use this as the data source.


#5

Hi, I’ve tried this, but can’t get it to work… I’ve run FMEPCConfig.exe file and gotten the connection string, but I can’t seem to find the FMEObjectsDotNet4.dll in the python script within the ImportTable node.

Any idea, @dcampanas?


#6

That is strange - you seem to have the correct location set.

My first guess would be a bit depth mismatch between Dynamo and FME, but it looks like you have the 64 bit version installed.

Are you able to view the same table in the FME Data Inspector? This will tell us if FME is working correctly.


#7

Hi, yep. It’s 100% readable in the Data Inspector.

If I however run the Dynamo script with FME open, it produces a new error message: image


#8

I can reproduce the second error - it happens when setting the log file location to a non-existent folder. Please try setting the log location to a folder that already exists, or creating the folder C:\Desktop.

Once you change the location, would you mind sending me the resulting log file? It would help me diagnose the problem loading the DLL. You can send direct to dave.campanas@safe.com, if you prefer.