Linked Room boundaries being bounded by linked elements

I don’t mind a bit of additional processing given the scope of the building to get a more accurate result, I can also find someone to process this with raw python than me guessing and checking with dynamo.

The same room boundary node by crumple is working within the Arch-A model, so I’ll open up the Architects model directly and do the export then import via CSV as you mention.

It seems like there might be an additional workaround where I can open the architects model directly via my local cache as part of the script that I’ll look into so I can keep all the boundaries within dynamo.

Very interesting video regardless though, thanks for investigating.

Opening the architects model and extracting the room geometry is a good step - doubly so in that you can just extract the boundary curves at the center of the wall and extrude stuff from the room’s level to the level above. The resulting solids should have no gaps and that solves the ‘above the ceiling’ issue as well as the ‘on the face of the wall’ issue (center of the wall is less common. I would recommend pushing this into a new model so you can graphically compare your rooms to the architects; just keep the room’s name, number, ID, and GUID as parameters of family instances, and set the solid as the only geometry.

With that done you now only need pull element location, extract the center point of any line based locations, and find the intersecting family instances.

The solution I ended up going with:

  • Download the architects models
  • Open these models
  • Reload all of the model links
  • Extract all the boundaries (lines)
  • Fix up any boundaries that don’t form complete polycurves
  • Convert them to a string and export to excel
  • Import the excel to the MEP model
  • Convert from string to line
  • Fix up the boundaries that break on the conversion
  • Transform the lines by the internal origin as the architect won’t fix the internal origin for some of the models
  • Fix up the boundaries that break from this transform
  • Use these complete polycurves to find the rooms where the MEP elements are in

It’s a bit painful as we need to complete this process every time we get a new model but seems quite accurate.

Automate the export only for rooms which have changed (look into the document difference class).

Also automate opening all the models.

Both of these will require moving from dynamo nodes to C# (preferred) or Python as nodes for background opening can be unstable.

Finally automate running the one graph using journal processing or just Dynamo Player.

One thing I tried:

  • Get all the consumed models from the desktop connector folder
  • Get the size of the model
  • Compare the size of the model to my collaboration cache
  • This gives me the locally cached version of the linked model
  • I open this model as a background document then extracting the rooms by category and document

Unfortunately even though the linked model is opened as a separate document, it still collects the boundaries the same way as a linked model.

Definitely agree the real solution is moving to a C# solution it’s just significantly harder to develop & roll-out.

It’s off topic now but if I could run the journal processing that would be useful if you have any material regarding this, as I potentially could open the locally cached models to do the export.

The zip file here has a sample graph to generate a playable journal which will run a Dynamo graph on a correctly named .rvt. You can look at how that is structured to generate something which meets your needs.