Hi!
I'm making a Heightfield HDA. I would like to add a Heightfield_Paint sop inside. Currently, when I select my HDA, go over the viewport and press Enter, I don't get the paint brush tool (obviously). How can I get the paint tool to "activate" when I press enter (or click on a button?).
HDA with Paint node inside. How?
365 3 1-
- olivierth
- Member
- 1250 posts
- Joined: April 2017
- Offline
-
- Italimpex Productions
- Member
- 35 posts
- Joined: Aug. 2021
- Offline
Hello. There's a simple method to get it working with Enter key. You're not going to need any additional buttons with python callbacks or nothing like that. We can utilize default state option in type properties but with a few more steps.
1. Allow editing of contents on your HDA
2. Open Type Properties
3. Under Parameters, drop in a Folder. Under Parameter Description, set its Name and Label, then change Folder Type to "Import Block"
4. Scroll down to "Import Settings" and toggle it on. In Source field, type "op:heightfield_paint1" (or whatever you named the node for example op:PutExactNodeNameHere)
5. Under Existing Parameters, enable toggle "Show Invisible Parameters". On the right hand side from that toggle is a cogwheel, click on it and, on its dropdown menu, tick "Promote Invisible Parameters"
6. Click on cogwheel again > Refresh Imports. It will promote all heightfield_paint1's parameters one level up (to HDA's level).
7. Now go to Type Properties > Node and set Editable Nodes to "heightfield_paint1"
8. Set Default State to "sidefx_stroke". I found that this default state doesn't throw any errors but it unfortunately doesn't project the brush onto the heightfield. Even though it won't project the brush in the viewport, heightfield_paint node will still preserve its functionality to project the stroke curve's points onto the heightfield.
I've appended an HDA so you can compare the settings. I hope it helps!
1. Allow editing of contents on your HDA
2. Open Type Properties
3. Under Parameters, drop in a Folder. Under Parameter Description, set its Name and Label, then change Folder Type to "Import Block"
4. Scroll down to "Import Settings" and toggle it on. In Source field, type "op:heightfield_paint1" (or whatever you named the node for example op:PutExactNodeNameHere)
5. Under Existing Parameters, enable toggle "Show Invisible Parameters". On the right hand side from that toggle is a cogwheel, click on it and, on its dropdown menu, tick "Promote Invisible Parameters"
6. Click on cogwheel again > Refresh Imports. It will promote all heightfield_paint1's parameters one level up (to HDA's level).
7. Now go to Type Properties > Node and set Editable Nodes to "heightfield_paint1"
8. Set Default State to "sidefx_stroke". I found that this default state doesn't throw any errors but it unfortunately doesn't project the brush onto the heightfield. Even though it won't project the brush in the viewport, heightfield_paint node will still preserve its functionality to project the stroke curve's points onto the heightfield.
I've appended an HDA so you can compare the settings. I hope it helps!
Edited by Italimpex Productions - Sept. 16, 2026 15:43:34
Italimpex Productions
CGI Studio specializing in directing and producing advertisements & films
CGI Studio specializing in directing and producing advertisements & films
-
- olivierth
- Member
- 1250 posts
- Joined: April 2017
- Offline
-
- olivierth
- Member
- 1250 posts
- Joined: April 2017
- Offline
-
- Quick Links

