New Feature: Perspective Piping

try this

  1. on the coordinate container add a meta.domId, values of “my-pipe-container-on” or “my-pipe-container-off” or similar
  2. add this theme class (note: this will affect all pipes within the container including pipes of children containers, if this isn’t desired we’ll have to add more CSS specificity to target just the direct children of the desired container)
#my-pipe-container-on .ia_pipe {
filter: drop-shadow(2px 2px 6px #4444dd);
}

#my-pipe-container-off .ia_pipe {
filter: none;
}
  1. toggling the meta.domId of the Pipe’s coordinate container
2 Likes

This really nice.
How we can add more specificity to target one individual pipe?

try this

#my-pipe-container-on > .ia_piping > .ia_pipe:nth-of-type(1) {
filter: drop-shadow(2px 2px 6px #4444dd);
}

#my-pipe-container-on > .ia_piping > .ia_pipe:nth-of-type(1) {
filter: none;
}

replace the 1 in nth-of-type(1) with the array index of the desired pipe + 1

see :nth-of-type() - CSS: Cascading Style Sheets | MDN

1 Like

Hello forum users!

Since our initial survey, these forum postings and comments have provided a wealth of improvement ideas. Our product design team would like to conduct another round of survey about the Piping feature, in order to gain additional feedback for future improvements.

We would appreciate if you could take a few minutes to help us fill out this survey for feedback. Thank you very much and have a wonderful day!

Take Survey

UPDATE: Thanks to those of you who have submitted feedback. The survey is now closed.

Hi guys!

I’ve been using the Pipe Draw Tool these days so I would like to mention a few things:

  1. It can be challenging to draw pipes when there are many components already placed. Pipes try to get at the anchor points all the time so there is a bit of workaround to get it where it should go. Shift and Alt doesn’t help because the pipe still has to move orthogonally. Those two keys are good for angles, not straight lines.
  2. After drawing many pipes on a View I left my laptop for a while. I’m not sure if just the screen turned off or if it also went to sleep. When I looked at my View I could see all my lines disappeared. Now I’m saving continuously which is an old habit (I guess for everyone).

I can’t remember the third one so I’ll leave my two cents :slight_smile:

I hope it helps someone.

The third one is it is totally unperformant for large number of pipelines compare to importing equal number of detail from SVG

My pipelines from Inkscape doesn’t even show up. I get tons of errors from an “exported optimized SVG” from inkscape. This is something we will address this week with Inductive Automation representative. But it’s a discussion for another topic.

Going back to the piping tool, I think it does its job decently but some key points has to be addressed.

What were your biggest issues?

Usually, I have a lot of pipelines in my project and in my experience, the performance with perspective pipelines is really bad compared to SVG. I never have a problem with importing SVG from Inkscape into Perspective. For reference try to replicate the following diagram with Perspective pipe tools. At some point in designer, you can even select them without lag.

This diagram can only happen with SVG.

11 Likes

@nader.chinichian

That is super impressive!

I’m curious how difficult it was for you to put in all that customization in the diagram especially with the zoom level visibility. Was that just adding an expression to each element in the SVG?

1 Like

Of course not.
For each SVG ELEMENTS we have Id which should be unique and with Id we have two options:
1 use DB table for storing data and base on event or fix rate parse all elements and update them from dB
2 put every thing coded in Id. Which faster but limiter. Some times I put my data in style section.

The only thing which is easier with perspective pipe compare to SVG is in perspective you can visually select pipe element. We have this option in Vision. If we have this option also in SVG, I don’t think even if we have full drawing tool in perspective I’m going to use it.
Why? Because it is not possible or economically valid for IA to create such drawing tools as inkscape.
When I dealing with large diagram (even 20 times bigger than you saw in video) I really enjoy a lot of helper feature in Inkscape. Even tools like Wonderware, Iconics doesn’t have those.

If I were IA decision maker, I definitely develop more support for importing SVG, bring elements selection of SVG and of course mouse click event on elements instead of Dev drawing tools.

Right now we have a module for mouse event click on SVG.

1 Like

The pipes are also svg, but yeah they do seem to lagg, especially if you are making such big and nice views well done!

Shamelessly tagging in to say i made that module they are using :stuck_out_tongue:

2 Likes

Nice work.

1 Like

Does anyone know if there is a way to isolate certain sections of pipes and keep them separate under the Pipes folder. Whenever I make a connection Perspective groups both pipes together as one. I want to run an animation later where fluid is flowing through specific pipes and not all of them.

Hi Patrick,
I assume you’re dragging one pipe connection to the pipe connection of another and are frustrated that they combine? If that’s the case you’re in luck: There are a separate undo for the combine. Hit undo once to undo the combine, hitting undo a second time will undo the move entirely.

ezgif.com-gif-maker

1 Like

I’ve been trying out the piping feature. So far I have liked it. There are a couple of things I’m looking for help with:

  1. Is there documentation or videos on how to draw with these? I have found that I get confused on the combining and drawing functions.
  2. Is there a way to individually set the arrow direction or hide the arrow by section? For example I have a pipe that has a number of tees and flow can go various ways. I was trying to use the mid-arrow setting to clarify flow but have issues getting the direction to fall into place for each pipe. It would be great to not worry so much about how I draw the pipes to get the direction right. Perhaps there could be a section by section setting to flip the arrow direction? Or hide the arrow on a specific section (e.g. if flow can go both ways). Any suggestions would be appreciated.
  1. Is there documentation or videos on how to draw with these? I have found that I get confused on the combining and drawing functions.

Yes, we have documentation in the Ignition User Manual. Perspective Pipes - Ignition User Manual 8.1 - Ignition Documentation

I've considered making a video, I've been preoccupied with the early development stages of the next big feature, but I could make time.

  1. Is there a way to individually set the arrow direction or hide the arrow by section? For example I have a pipe that has a number of tees and flow can go various ways. I was trying to use the mid-arrow setting to clarify flow but have issues getting the direction to fall into place for each pipe. It would be great to not worry so much about how I draw the pipes to get the direction right. Perhaps there could be a section by section setting to flip the arrow direction? Or hide the arrow on a specific section (e.g. if flow can go both ways). Any suggestions would be appreciated.

This is admittedly clunky, every pipe has one "start" (origin), and limitless "end"s . Mid arrow direction is determined by the start and end props, with the start prop taking precedence except for the "terminal" segment (segments that end in a connection without further connections)

One suggestion for fine grain control is to use separate pipes. You can drag one pipe segment to another to combine them, and then undo the combine to keep them as separate pipes.

1 Like

@mperkins, thanks for getting back with me. The references and suggestions you outlined have helped out.

One issue however with “separating pipes” for fine grain control is with the P&ID type. It appears the edges of the pipes are trying to help with overlap which in this case unfortunately makes the pipes look disjointed or unconnected (see picture below). I could try changing to another style of pipe, but then I can’t use the line variation feature anymore (e.g. mid-arrow) and then I have other types of intersection issues.

Ah, I see the issue. P&ID pipes have a gap that is automatically drawn between different pipes. There’s a ticket in our backlog for configuring those, but it’s not yet implemented. In the meanwhile, one solution to get it pixel perfect would be to move the pipes themselves.

ezgif.com-gif-maker (1)

1 Like

The next nightly will contain a new piping feature. It adds a session prop, session.props.pipes.overlapGap. This controls the gap that is rendered when P&ID pipes overlap. Default 4. When this prop is set to 0 or a negative number no overlap is rendered and it may result in a rendering performance boost when using complex P&ID pipes.

1 Like

I believe it is nicer if we have this setting for each pipe segments. There are cases that we need two different setting even on the same page