Navisworks API

Reply
Active Member
SergioFA
Posts: 10
Registered: ‎12-29-2011
Message 1 of 9 (425 Views)
Accepted Solution

3th party apps VS 2010 Color

425 Views, 8 Replies
01-04-2012 08:48 PM

HI all

This time i really need your help. I am traying change the color of an object. Let me explain please.

1. Select a button that has the next code Autodesk.Navisworks.Api.Application.ActiveDocument.Tool.Value = Autodesk.Navisworks.Api.Tool.Select;
2. I select a object (pipe) and then ...
3. Press the other button to change the color of that object.

I dont have much experience.... please help me. Attached a screenshot.

 

Regards

Sergio Franco.

Colin

 

Thanks a lot, again...

 

here is the code

 

 

System.Drawing.Color c = System.Drawing.Color.Red;
            string strcolor = System.Drawing.ColorTranslator.ToHtml(c);
            //Autodesk.Navisworks.Api.Application.ActiveDocument.Models.OverridePermanentColor(IEnumerable<ModelItem>, Autodesk.Navisworks.Api.Color.Red);
            // m_Color should be the Color Selected example: #FFFFFF
            System.Windows.Media.Color m_CompColor = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString
                (strcolor
                    
                );
            //
            Autodesk.Navisworks.Api.Application.ActiveDocument.Models.OverridePermanentColor
            (
            Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.SelectedItems,
                new Autodesk.Navisworks.Api.Color
                (
                    Convert.ToDouble(m_CompColor.R) / 255,
                    Convert.ToDouble(m_CompColor.G) / 255,
                    Convert.ToDouble(m_CompColor.B) / 255
                )
            );
            Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.Clear();

 

 

Regards,

 

SF

Contributor
KempCE
Posts: 18
Registered: ‎08-02-2011
Message 2 of 9 (417 Views)

Re: 3th party apps VS 2010 Color

01-05-2012 06:13 AM in reply to: SergioFA

Sergio,

 

  See If This Works

 

 

//Begin Code

using NavAPI = Autodesk.Navisworks.Api;

// m_Color should be the Color Selected example: #FFFFFF
System.Windows.Media.Color m_CompColor =(Color)System.Windows.Media.ColorConverter.ConvertFromString
	(
		m_Color
	);
//
NavAPI.Application.ActiveDocument.Models.OverridePermanentColor
(
NavAPI.Application.ActiveDocument.CurrentSelection.SelectedItems,
	new NavAPI.Color
	(
		Convert.ToDouble(m_CompColor.R) / 255,
		Convert.ToDouble(m_CompColor.G) / 255,
		Convert.ToDouble(m_CompColor.B) / 255
	)
);

//End Code

 

 

Contributor
KempCE
Posts: 18
Registered: ‎08-02-2011
Message 3 of 9 (411 Views)

Re: 3th party apps VS 2010 Color

01-05-2012 08:34 AM in reply to: KempCE

Sergio,

 

 

 I forgot to add this line of Code at the Very end

 

NavAPI.Application.ActiveDocument.CurrentSelection.Clear();

 

 

Colin

Active Member
SergioFA
Posts: 10
Registered: ‎12-29-2011
Message 4 of 9 (406 Views)

Re: 3th party apps VS 2010 Color

01-05-2012 08:48 AM in reply to: KempCE

KempCE

 

Just one error appears, "m_color does not exist in the current context" for try if this works. Help me please...

 

Regards,

SF

Contributor
KempCE
Posts: 18
Registered: ‎08-02-2011
Message 5 of 9 (404 Views)

Re: 3th party apps VS 2010 Color

01-05-2012 08:50 AM in reply to: SergioFA

Sergio,

 

 

In your picture you showed a Button with a Color that the User Selects to change the color. Change m_Color to that Color Selection

 

Regards,

Colin

Active Member
SergioFA
Posts: 10
Registered: ‎12-29-2011
Message 6 of 9 (398 Views)

Re: 3th party apps VS 2010 Color

01-05-2012 10:07 AM in reply to: KempCE

KemCE

 

the code is..

 

string color = "RED";
            // m_Color should be the Color Selected example: #FFFFFF
            System.Windows.Media.Color m_CompColor = (System.Drawing.Color)System.Windows.Media.ColorConverter.ConvertFromString
                (color
                    
                );
            //
            Autodesk.Navisworks.Api.Application.ActiveDocument.Models.OverridePermanentColor
            (
            Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.SelectedItems,
                new Autodesk.Navisworks.Api.Color
                (
                    Convert.ToDouble(m_CompColor.R) / 255,
                    Convert.ToDouble(m_CompColor.G) / 255,
                    Convert.ToDouble(m_CompColor.B) / 255
                )
            );
            Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.Clear();

 

when i change m_color by color that is "string color  ="RED;".  Appears an error "Cannot implicity convert type"System.Drawing.Color" to "System.Windows.Media.Color" ". Please am i doing something wrong??

 

Regards,

SF

Contributor
KempCE
Posts: 18
Registered: ‎08-02-2011
Message 7 of 9 (396 Views)

Re: 3th party apps VS 2010 Color

01-05-2012 10:48 AM in reply to: SergioFA

Sergio,

 

  you will need the R,G,B Hex Color String.

 

Red = #FF0000

 

 

Regards,

Colin

Active Member
SergioFA
Posts: 10
Registered: ‎12-29-2011
Message 8 of 9 (389 Views)

Re: 3th party apps VS 2010 Color

01-05-2012 07:00 PM in reply to: SergioFA

Colin

 

Thanks a lot, again...

 

here is the code

 

 

System.Drawing.Color c = System.Drawing.Color.Red;
            string strcolor = System.Drawing.ColorTranslator.ToHtml(c);
            //Autodesk.Navisworks.Api.Application.ActiveDocument.Models.OverridePermanentColor(IEnumerable<ModelItem>, Autodesk.Navisworks.Api.Color.Red);
            // m_Color should be the Color Selected example: #FFFFFF
            System.Windows.Media.Color m_CompColor = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString
                (strcolor
                    
                );
            //
            Autodesk.Navisworks.Api.Application.ActiveDocument.Models.OverridePermanentColor
            (
            Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.SelectedItems,
                new Autodesk.Navisworks.Api.Color
                (
                    Convert.ToDouble(m_CompColor.R) / 255,
                    Convert.ToDouble(m_CompColor.G) / 255,
                    Convert.ToDouble(m_CompColor.B) / 255
                )
            );
            Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.Clear();

 

 

Regards,

 

SF

Active Member
SergioFA
Posts: 10
Registered: ‎12-29-2011
Message 9 of 9 (372 Views)

Re: 3th party apps VS 2010 Color

01-09-2012 10:52 AM in reply to: SergioFA

Colin

I am very grateful for your help. Please could you help me with the next.
I am trying to use the function "HIDE UNSELECTED" from my app. I try with the next...


        private void button14_Click(object sender, EventArgs e)
        {
       Autodesk.Navisworks.Api.Application.ActiveDocument.Models.SetHidden(Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.SelectedItems, true);
            Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.Clear();
        }
 

but the result is other. How can i do it??

Please Help.

 
Best Regards,

SF

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.