Jump to content

VWX Datasmith to Unreal


Recommended Posts

I'd been looking at alot of the Unreal Engine Archviz tutorials, mostly centered around import from 3DS.

 

https://learn.unrealengine.com/home/LearningPath/90586?r=False&ts=637516509308327332

 

I had been exporting VWX scenes as .dwg and using the Unreal Engine Beta plugin "Datasmith CAD Importer" to bring the scene into Unreal.

The biggest issue was that all of the geometry was brought in as separate pieces, IE. a shelf created with VWX Shelving Unit tool would come in with all the shelves, side and rear pieces individually so in Unreal you'd have to select multiple meshes at the same time to move the single shelf unit.

Using the new SP3 Datasmith exporter, looks to have exactly the same result, so a window, door, cabinet or any UNIT created by a VWX tool to act as a single unit in VWX, exports to the .udatasmith file and imports into Unreal as a collection of individual meshes.

 

I had assumed that a VWX Datasmith pipeline would allow export / import of these units AS units, and have multiples of the same unit be recognized as instances which is what appears to happen with the 3DS Datasmith pipeline. 

 

https://learn.unrealengine.com/course/2436637/module/5375271?moduletoken=UHxxnDLPW8QKRagLoM92H41Ml3gdWXuCVq5HhTaJLjIgwKNffDOfVIj523as6Um9&LPId=90586

 

Does the VWX Datasmith pipeline do these things and I'm missing some procedure to get the functionality?

Link to comment
  • Vectorworks, Inc Employee

Hello @MartVWX

 

Vectorworks is exporting the scene objects verbatim, by default.  The scene hierarchy in Unreal is a direct match to the scene hierarchy in Vectorworks.  This is a starting point and I understand the need to rework this for efficiency and convenience in your workflow.

 

The DataPrep functionality in Unreal is what you should use to reorganize the default scene, to combine objects by properties etc.

https://docs.unrealengine.com/en-US/WorkingWithContent/Importing/Dataprep/index.html

 

Twinmotion exposes some of this in the Import options for combining by materials.

Link to comment

In Twinmotion it looks like I get all my VW Hierarchy via VW Datasmith export,

when I switch import option in TM from default "combine by Materials" to "keep Hierarchy",

which I usually do !

 

Default Combine by Materials can also take very long time to import larger geometries !

(While it may run smoother after (?))

 

And Unreal got a Twinmotion import, at least as a Beta (?)

Maybe a workaround to get the Hierarchy from VW to Unreal ?

Link to comment

Strange,

so far I had my must ugly complicated Revit imported project,

exported to C4D Exchange and opened that C4D R21 File in Twinmotion.

It is 3+ GB in TM-size and works quite well and even smooth and responsive

on my M1 Mini. (Much better than on Trash Can ?)

 

But when testing Datasmith export from VW and importing the

Datasmith file into TM, I get 5+ GB TM file and the file is pretty unusable

on my M1 Mini 16 GB.

Link to comment

Dave, Hi, thanks for your help.

Having spent some time looking into the process for Visual Data Prep, I'd have to say that the way VWX is exporting to the .udatasmith file is very limited and does not make it easy to use the Dataprep automated options on account of it's naming / labeling of the component parts.

There is no metadata that comes through from VWX to UE, such as VWX classes, Layers or object type (Wall, Shelving unit etc.) that would help group the meshes together easily, it's just the UE assigned ID#. 

Consequently you end up manually selecting and merging items, effectively going around the automating functions for Dataprep.

 

Screen Shot 2021-03-21 at 19.18.55.png

Screen Shot 2021-03-21 at 18.58.39.png

  • Like 1
Link to comment
  • 2 weeks later...

Does VWX to Datasmith export include vectorworks lights?  I placed a spot light in a VW file, exported to Datasmith, then opened it in Twinmotion and there were no light objects (and I didn't see the effect of the light where I placed it in VW.) I thought I read or heard that this system was supposed to transfer lights, which would make Twinmotion (and potentially UE) much more useful to me as I iterate and share designs.

Link to comment
  • 11 months later...
  • Vectorworks, Inc Employee

Hello all:

Vectorworks 2022 Service Pack 3 includes many important fixes for Datasmith/Twinmotion.  Please update to Service Pack 3 and let us know whether these issues are improved and/or resolved.  Thanks!

 

There is a new option to export record field data that can help Visual Dataprep workflows, and IDs have been improved.  Light objects are being exported and a few bugs related to those have been fixed in SP3.

 

  • Like 1
Link to comment
  • 1 month later...

Hello all

I exported my building in Datasmith format in VW for unreal and imported in UE with Datasmith importer, but all of my doors and the frames are horizontal static meshes and I can't rotate them, in the scene everything is ok because UE gives a 90 degree rotation to them automatically,,, is there any way to fix this issue?

Link to comment
8 hours ago, Alborz said:

but all of my doors and the frames are horizontal static meshes and I can't rotate them,

 

Does this still happen in VW 2022 SP3 ?

I was used to have that in the past (starting with SP2 ?) but did not work or test on it since ....

(Jambs where in place but Sashes rotated outwards to Layer Plane orientation.

I think this is a side effect of trying to get rid of Screen Plane attempts in VW 2022,

which I highly welcome BTW)

 

And BTW, when trying to play with Texture scale and orientation in Twinmotion, suddenly

VW's rounded Walls switched Axes and rotated around.

Link to comment
  • 4 weeks later...

Yes it still happens, probably because for designing a game no one use BIM and they don't care about bringing building elements' data into the game environment, which make sense, so VW don't see any reason to solve this problem.

But I think future games, specially simulation games is about data and how we integrate them into the game, so solving these problems to have a seamless workflow from any BIM environment  to UE is very important.

I also tested with ArchiCAD, the same thing happens.

Link to comment
  • 9 months later...
On 3/15/2022 at 4:48 PM, Dave Donley said:

Hello all:

Vectorworks 2022 Service Pack 3 includes many important fixes for Datasmith/Twinmotion.  Please update to Service Pack 3 and let us know whether these issues are improved and/or resolved.  Thanks!

 

There is a new option to export record field data that can help Visual Dataprep workflows, and IDs have been improved.  Light objects are being exported and a few bugs related to those have been fixed in SP3.

 

 

Hello David,

 

The introduction of Direct Link in 2022 SP3 is proving very helpful to me.

Objects in UE are still importing poorly organised and named as mentioned by @MartVWX here...

 

On 3/22/2021 at 1:30 PM, MartVWX said:

Dave, Hi, thanks for your help.

Having spent some time looking into the process for Visual Data Prep, I'd have to say that the way VWX is exporting to the .udatasmith file is very limited and does not make it easy to use the Dataprep automated options on account of it's naming / labeling of the component parts.

There is no metadata that comes through from VWX to UE, such as VWX classes, Layers or object type (Wall, Shelving unit etc.) that would help group the meshes together easily, it's just the UE assigned ID#. 

Consequently you end up manually selecting and merging items, effectively going around the automating functions for Dataprep.

 

 

There's 1 improvement which would revolutionise the way I am able to use the VW -> UE workflow. Symbols turning into Actors.

Currently in Vectorworks I create a symbol (Say a door), with 10 static meshes. I then use that door 15 times over my level. When this imports into UE, 2 things happen:

 

Firstly, we only import 10 unique static meshes. It's important to understand that a mesh is different to a static mesh actor, which is different to an actor.

Secondly, in the Outliner (UE's list of assets that @MartVWX showed earlier) we add an actor and a StaticMeshActor for every instance of this static mesh in our VW file. This imports into UE as 15 actors, each with 10 unique static mesh actors which are themselves a child of an actor, totalling 150 static mesh actors. This gets messy when scaled up (I'm looking at you, truss) and makes importing slower, file sizes larger and asset management horrible.

 

Ideally in Unreal Engine what I want to do is have 15 actors which all reference 1 actor made of the 10 meshes. That way I can change the material on my single actor and see the changes propagate across all of them. The current solution is a mixture of moving around the level and individually selecting each matching mesh and putting them in common folders as well as searching for assets when possible.

 

I'm looking now at how to use Visual Dataprep to potentially do this but given that this is something that is necessary in EVERY datasmith import from Vectorworks I feel like it would be reasonable for Vectorworks to create and publish this, either as an edit to how Vectorworks exports Datasmith or as a Visual Dataprep file for UE. Currently I am looking at the metadata and struggling to get it to view in Unreal Engine. I can see in the .udatasmith in a text viewer that the metadata exists and custom IFC records are being transferred over (I can see them with a quick text search) but they seem not to be getting applied to the asset.

 

Metadata in Unreal Engine.

meshAssetData.PNG.dff5e622c6426f2ce2893b684a7c8cd4.PNG

 

Text from .Udatasmith file:

<Actor name="Extrude_Doors_53" label="Extrude_Doors_53">
	<Transform tx="0.0" ty="0.0" tz="0.0" sx="1.0" sy="1.0" sz="1.0" qx="0.0" qy="0.0" qz="0.0" qw="1.0" qhex="0000000000000000000000000000803F"/>
	<tag value="Empty Actor" />
	<children visible="true">
		<ActorMesh name="Instance10972721327748965760_5239107781247857233" label="Extrude_Doors_10972721327748965760_5239107781247857233">
			<mesh name="Mesh10132752585299418352_16003714575914235506Sub0"/>
			<Transform tx="240.418686" ty="1019.875671" tz="101.584007" sx="1.0" sy="1.0" sz="1.0" qx="-0.024006" qy="-0.706938" qz="0.706461" qw="0.02399" qhex="42A8C4BCE5F934BF9CDA343F4486C43C"/>
			<tag value="Mesh Actor" />
		</ActorMesh>
	</children>
</Actor>

 

As an aside, I believe the above code snippet could be done better to remove excess actors. I've detailed that here: 

 

 

 

And the Metadata. For some reason the reference between the Actor & MetaData doesn't seem to be connecting.

 

<MetaData name="Extrude_Doors_53" reference="Actor.Extrude_Doors_53">
	<KeyValueProperty name="NNA_IfcAnnotation_prm1_type" type="String" val="16385"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm2_value" type="String" val="IfcAnnotation"/>
	<KeyValueProperty name="VW_UUID" type="String" val="a9b16221-02cf-4bad-a1b8-40963793938c"/>
	<KeyValueProperty name="NNA_IfcAnnotation_instanceID" type="String" val="1790"/>
	<KeyValueProperty name="VW_tdType" type="String" val="24"/>
	<KeyValueProperty name="VW_bounds" type="String" val="-393.700000,-20.000000,85.725000,393.700000,20.000000,1943.100000,"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm1_name" type="String" val="OwnerHistory"/>
	<KeyValueProperty name="NNA_IfcAnnotation_IFC_UUID" type="String" val="{E6812CD3-C83C-11ED-B9CD-18C04DDA7E81}"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm5_value" type="String" val="0"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm0_name" type="String" val="GlobalId"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm0_type" type="String" val="16391"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm1_value" type="String" val="0"/>
	<KeyValueProperty name="IFC_IfcAnnotation_Name_7" type="String" val="IfcAnnotation"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm2_name" type="String" val="Name"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm2_type" type="String" val="32775"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm3_name" type="String" val="Description"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm3_type" type="String" val="7"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm3_value" type="String" val="DoorGlass"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm4_name" type="String" val="ObjectType"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm4_type" type="String" val="16391"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm5_name" type="String" val="ObjectPlacement"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm5_type" type="String" val="16385"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm6_name" type="String" val="Representation"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm6_type" type="String" val="16385"/>
	<KeyValueProperty name="NNA_IfcAnnotation_prm6_value" type="String" val="0"/>
	<KeyValueProperty name="IFC_IfcAnnotation_GlobalId_7" type="String" val="3cWIpJo3mHxRdD6C1Dsdw1"/>
	<KeyValueProperty name="IFC_IfcAnnotation_Description_7" type="String" val="DoorGlass"/>
</MetaData>

 

Edited by Ben Garcia Design
Added link to thread detailing too many children issue.
  • Like 2
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...