Question

Use attribute created from one transformer as value for multiple features

  • 19 December 2022
  • 2 replies
  • 3 views

FYI - I'm fairly new to FME and would like to start using it much more in our workflows, any help is appreciated.

 

I'm converting a model from Revit to FBX. Where I am transforming the coordinates to a local ENU CS prior to export.

 

I have created a transformation matrix using the Python Caller, where I intend to use the generated coefficients in a 3DAffiner. Manually adding the coefficients into the 3DAffiner works well:

imageHere I simply printed the values of a1-c4 with the first run of the workspace, then pasted these values into the 3DAffiner to produce the FBX file.

 

What I want to do is pass the a1-c4 attribute values from the PythonCaller into the 3DAffiner, as below:

imageAlthough I recieve an error when doing this:

3DAffiner_ecef_local_origin (TeeFactory): 3DAffiner_ecef_local_origin: Unable to convert @Affine parameter A value `<Null>' to a floating point value

 

As you can tell, the issue is because the feature to be transformed by the 3DAffiner doesn't have these attributes.

 

So my question is - how can I make the 3DAffiner use the same a1-c4 attributes from the PythonCaller when making the transformation for each of the features input?

I've attempted to merge the values together to add a new column to the feature table with no luck.

 

Thanks,

Tom

 

 

 

 

 

 

 


2 replies

Userlevel 6
Badge +32

You need to merge the values to the features. Multiple ways to do this, but one is to use a FeatureMerger. Connect the features to th requestor inputport. Connect the feature with the values to the supplier inputport. Open the FeatureMerger parameters and set "1" in the fields requestor and supplier. Connect merged requestors outputport to the affiners inputport and run it.

Perfect, thankyou!

Reply