Your comments


The property window is now being populated. Thanks again for looking into the issue!

As for the work around I eventually stumbled into see the example code below. For example purposes I'm manually adding the pipe properties. In my actual program the user inputs the desired values in a textbox and clicks the "AddElement_Click" button to incorporate the element.

public void AddElement_Click(object sender, RoutedEventArgs e)
    PipeVisual3D tubenew = new PipeVisual3D();
    tubenew.Material = Materials.Green;
    tubenew.Point1 = new Point3D(0, 0, 0);
    tubenew.Point2 = new Point3D(0, 5, 0);
    tubenew.Diameter = 0.5;
    tubenew.InnerDiameter = 0.4;


Using the ViewModel.cs file from BuildingDemo and the code below, I am able to obtain the pipe properties to display in a format of my choosing.

private void CheckElement_OnMouseDown(object sender, MouseButtonEventArgs e)
    var viewport = (HelixViewport3D)sender;
    var firstHit = viewport.Viewport.FindHits(e.GetPosition(viewport)).FirstOrDefault();
    if (firstHit != null)
        GetDiameter = HelixToolkit.Wpf.PipeVisual3D.DiameterProperty;
        GetInnerDiameter = HelixToolkit.Wpf.PipeVisual3D.InnerDiameterProperty;

        var a = firstHit.Visual.GetValue(GetDiameter);
        var b = firstHit.Visual.GetValue(GetInnerDiameter);

If anyone sees a better or more elegant way of pulling the properties without using the PropertyGrid I'd be happy to see/hear it. I'm still learning and trying to make my code more efficient so any constructive comments or suggestions are more than welcome!


Thanks for looking at this and for the reply. I will take a look once I get home.

I was able to come up with a work around which ended up being a better fit for what I ultimately needed. Once i figured this out i felt a bit silly as it seemed so obvious. I'll post a source code example as well once I get home.