How to set rules for Refinery

Is it possible to create rules for Refinery studies? I am currently working on a project in wich I want to generate possible floor plan solutions. So far I’ve been able to create geometry and check if different geometries intersect but when running a study in refinery I am unable to filter out the results in which geometries intersect.

Geometry.DoesIntersect, count the true results, have Refinery try to minimize that, and/or use 0 as a filter to limit what you see.

It does sound as if you could be generating things more efficiently though - you may be fighting against the algorithm with your current method. A more in depth review of the methods you are using might provide better insight though.

This is indeed the best way I found for now. However refinery will still show plans with intersections in them.

As for the efficiency I am sure it could be a lot better! I’ve only used dynamo so far for optimizations of workflows within Revit and this is the first time I’m trying to work with generative design. The plan I followed for now was to:

  1. create geometry with dimensions based on excel input
  2. make those geometries move over x and y axis
  3. use Refinery to change positions of multiple geometries.

Next steps for me are to change the basic geometries for Revit families or walls, etc. to make it useful as floor plans.

As said this is all quite new to me so any insight on other, better ways to try this are more than welcome!!

Perhaps use the dimension of the previous element to place the next one, and do so in sequence, rather than at a random dimension?

That is true but that would also mean that these elements will always be placed in the same order. I would like them to be able to switch positions in order to create more solutions. I guess I’ll just stick with the minimize intersect option for now.

Change the order rather than the dimensions.

This post may give some insight.