2
$\begingroup$

I've created a Geometry Nodes setup for creating walls with door and window openings. It takes a simple line mesh as input and "builds" the walls and door/window openings based on input parameters. I'm using the Edge Crease float value as a Selection in the node setup to control the wall openings. For example:

Edge Crease = 1.0 --> solid wall

Edge Crease = 0.5 --> window opening (which means solid wall at ground level, window opening, and a piece of wall above it)

Egde Crease = 0.0 --> door opening (which means no solid wall at ground level, but a piece of wall above the opening)

I was wondering if editing Custom Geometry Attributes would be possible in the UI, so it would be possible to use specific attributes instead of "cheating" with Crease values?

I've attached a screenshot and a .blend to clarify things.

![enter image description here

$\endgroup$
4
  • $\begingroup$ Have you tried using a vertex group ? $\endgroup$
    – Gorgious
    Commented Mar 3, 2022 at 12:44
  • $\begingroup$ Material Selection might be an option, too. One material for the windows and one for doors? $\endgroup$
    – Blunder
    Commented Mar 6, 2022 at 18:54
  • $\begingroup$ @Blunder Interesting idea. You mean setting the selection with the Material Index Node? I'll give it a try! $\endgroup$
    – Bencee
    Commented Mar 7, 2022 at 19:12
  • $\begingroup$ @Gorgious Unfortunately it must be segments data, because 1 vert shares data with 2 segments $\endgroup$
    – Bencee
    Commented Mar 7, 2022 at 19:21

2 Answers 2

1
$\begingroup$

Currently, there are no tools to edit and manipulate with attributes. You can access it via Python, though:

enter image description here

The script looks like this:

import bmesh
import bpy

me = bpy.context.object.data
bm = bmesh.from_edit_mesh(me)

# this line works only in edit mode:
bm = bmesh.from_edit_mesh(me)

ea = bm.edges.layers.float['CustomEdgeAtr']

# set some edges:
bm.edges[1][ea]=1
bm.edges[3][ea]=1
bm.edges[4][ea]=1
bm.edges[5][ea]=1
bm.edges[6][ea]=1
bm.edges[7][ea]=1

bmesh.update_edit_mesh(me)
$\endgroup$
0
$\begingroup$

I would work with curves and different geometry node trees. E.g. one for doors, one for windows etc.

As i can see you have the knowledge in geometry nodes to do that. So i don't have to show you the node setup.

But i want to show you the advantage of curves when using geometry nodes:

enter image description here

$\endgroup$
1
  • $\begingroup$ Yeah, could be one way, but it doesn't solve the problem - at least not in my case:) I'm already applying different NodeTrees for doors, windows, walls and glasses. I've 'ALT+D'-d the Master Mesh and applied the different modifiers to them. With this method only one line need to be drawn (extruding a vertex along the blueprint) then I apply the crease values (or whatever, if possible) to set up all the walls - I'm lazy:) $\endgroup$
    – Bencee
    Commented Mar 7, 2022 at 19:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .