专利名称:包括异常事件状况管理和显示的自动化太阳能收集器安装设计的制作方法
包括异常事件状况管理和显示的自动化太阳能收集器安装
设计
背景技术:
近年来,太阳能已经成为越来越重要的能源。可以通过许多方式来收集并利用太阳能,包括通过使用太阳能收集器,比如使用光伏(PV)模块以及太阳热热电收集器和转换器。这些项目(project)的规模可能变化非常大——从独栋住宅房顶到超过一百万PV模块的场地。太阳能发电厂的成本、使用寿命、能量产出和经济价值很大程度上取决于许多复杂并互相关联的参数,包括但不限于i)场所,ii)气候,iii)干扰布局的物理障碍,比如天窗,iv)非物理场地特征,比如地界线缩进或者公共通行区,ν)会在系统上投下阴影的物理障碍,Vi)设置了重量限制和防火安全保护的地方建筑法规,Vii)环境条件,比如设计风速容限,Viii)可用的安装表面,比如地面、房顶或停车场上方的框架,ix)地方法、国家法和联邦法,X)公共电互联要求,Xi)客户工作场地处已有的电力设备,和Xii)客户的电力或能量成本。设计和分析一个符合这些要求的高效系统的任务可能是复杂、耗时和容易出错的, 并且可能构成太阳能项目开发的主要成本。
发明内容
公开了一种在计算机上生成太阳能收集器安装设计的方法。该方法可以包括提供安装工作点的表示,其中所述表示可以包括用户定义的项目状态信息。该方法可以包括对用户定义的项目状态信息应用规则,以确定关于例如太阳能收集器安装设计的至少一些元数据。还可以使用所述元数据生成包括一个或多个设计异常事件的一组设计异常事件。每个设计异常事件可以对一个或多个异常事件状况进行编码。异常事件状况可能是由许多原因造成的,包括用户定义的项目状态信息、设计、布局等违反了软件编码规则。可以将所述的一组设计异常事件的表示提供给用户。可以对用户提供选项,并且选项可以包括忽略异常事件或者遵从设计异常事件。可以要求或不要求用户在用户界面中执行另一动作之前 (比如以遵从的方式)解决任何相应异常事件状况。还公开了一种为太阳能收集器安装项目生成合约条款的方法。该方法包括在计算装置中提供安装工作点的表示。该表示可以包括至少一个几何对象、项目状态信息等。该方法可以包括对一个或多个几何对象和/或项目状态信息应用一个或多个规则以确定关于安装设计的元数据。元数据可以用来生成包括一个或多个异常事件的一组异常事件,其中异常事件可以对由于违反软件中编码的规则而引起的且关于安装设计的异常事件状况进行编码。异常事件可以提供足以识别用于包括在合约中的条款的信息,例如下游协议。该方法可以包括使用该信息来生成用于包括在合约或文档中的条款的列表,其中所述条款可以对应于一个或多个合约排除项(contract exclusion)。公开了一种基于计算机的用户界面,用于设计太阳能收集器安装设计。该用户界面可以包括太阳能收集器安装设计的计算机用户界面表示,该表示可以包括实质上根据项目状态信息(例如特征属性)布置在一个表面上的太阳能收集器。可以提供设计异常事件的列表的表示。一个或多个设计异常事件可以对应于与太阳能收集器安装设计对软件编码设计规则的违反有关的异常事件状况。该界面可以包括一个操作来允许用户通过与设计异常事件交互来解决异常事件状况的控件。与异常事件的交互可以包括遵从设计异常事件、 重载(override)异常事件等。在一些实施例中,用户可以在解决异常事件状况之前在用户界面中执行其它动作。
图1是用于包括房顶、排气扇和管道特征(feature)的太阳能收集器安装的示例工作点的示意性等距示图;图2示意性示出包含图1的安装工作点的直观表示的用户界面,包括对应于房顶、 排气扇和管道特征的几何对象;图3示出图2的用户界面,其中直观表示中的第一几何对象被分类为“房顶”,从而与第一组特征属性和相应的布局约束相关联;图4示出图3的用户界面,其中第二几何对象被分类为具有子类型“排气扇”的“障碍物”,从而与第二组特征属性和相应的布局约束相关联;图5A示出图4的用户界面,其中正在输入用于生成布局的一组示例的设计优选, 包括PV模块类型、定向和起点;图5B示出图5A的用户界面,其中已经通过布局引擎按照输入(例如特征属性、项目属性和设计优选)和布局规则(例如布局约束、环境因素、地方建筑法规等)生成了 PV 模块布局;图6A是示出可以使用实施例的软件创建出PV模块布局(比如图5B所示的布局) 所采用的处理的流程图;图6B示出图5A的用户界面,其中按照图6A的第一轮处理的实施例已经在房顶上平铺了 PV模块布局;图7A示出图5A的用户界面,其中用户已经创建了“工作区”,即工作点内的一个或多个毗邻的子区,图形表示指示了所有者最希望将模块放置在工作点上的哪个地方。该情况例如可能发生在当工作点包含未开发的地区和建筑物然而所有者仅希望将模块放置在该建筑物上的时候;图7B示出图7A的用户界面,其中按照工作区属性、特征属性、布局约束、设计优选和其它布局规则已经生成了 PV模块布局;图8A示出图5A的用户界面,其中已经定义了两个用户创建的靶框(aperture)和相应的用户定义的靶框设计优选;图8B示出图8A的用户界面,其中按照针对每个靶框的靶框设计优选和按照项目属性、特征属性、布局约束和其它布局规则已经生成了 PV模块布局;图9A和图9B是示出可以通过布局引擎按照多用个户定义的靶框(每一个靶框可以包含不同的靶框设计优选)来创建PV模块布局所采用的处理的流程图;图IOA和图IOB示意性示出按照本文的指教在软件应用程序中表示工作点特征和要布置的太阳能收集器的数据的部分分级结构;图11示意性示出包含了异常事件(exception)以及设计者应对这些异常事件会采取的各种机制的列表的用户界面,异常事件包括警告、错误和合约排除项(contract exclusion);图12是示出用户进行输入以及验证所得布局和生成异常事件可以采用的处理的流程图;图13示出图IOA的项目元素的分级结构,扩展来包括响应于用户对可替代特征属性、设计优选、项目属性等的选择而可能创建的由软件生成的多个版本的布局的部分描绘;图14示意性示出包括了项目设计的版本列表以及用于对版本进行操作的控件的用户界面;图15示意性示出版本概要的一部分;图16A提供了另一个示意性用户界面的屏幕截图,其中用户可以对几何对象分类,并且其中显示可以按照特征属性、项目属性、布局规则和设计优选来生成的PV模块布局;图16B提供了示意性用户界面的一个屏幕截图,其中提供了涉及PV模块的分类和布局的一些功能的工具栏控件;图16C提供了示意性用户界面的一个屏幕截图,其中提供了涉及PV模块的分类和布局的一些功能的菜单控件;图16D提供了示意性用户界面的一个屏幕截图,其中提供了用于访问和修改特征属性、设计优选、和其它用户输入的选项板(palette)控件;和图16E提供了图IOA的示意性用户界面的一个屏幕截图,其中按照用户输入(例如特征属性、项目属性、设计优选)和布局规则(例如布局约束、环境因素、地方建筑法规等)已经生成了 PV模块布局。
具体实施例方式计算机辅助设计系统(CAD)已经商业应用了数十年。CAD系统提供了高效的方法来使设计信息的创建、编辑、呈现和检索自动化。已经通过使用“基于知识的”编程技术增强了 CAD系统的能力,从而能够对工程和/或设计规则进行形式化、编码、和执行,来使设计处理的各部分自动化或者检测出潜在的设计错误。基于知识的系统的一个普通示例是建立于大多数商业文字处理器中的语法检查功能,其中英语语法的许多规则已被编码并被自动应用于文本文档来突出显示潜在错误并建议纠正措施。本文描述的系统和方法涉及基于知识的CAD技术在太阳能系统设计的符合大量设计约束(比如本地场所条件、工程规则和建筑法规)的自动化布局、评价和优化方面的应用。优选实施例被实施为对已有CAD系统(比如AutoCAD )的软件定制的集成设置。作为替代,本文描述的系统和方法还可以被实施为全新的独立软件程序。本文描述的本发明的优选实施例提供了用于设计适合安装在给定工作点处的太阳能收集器布局的系统和方法。本实施例可以包括创建和编辑各种数据“对象”以及将这些对象分类成具有伴随属性和布局约束的各种类型的预定义“特征”的系统和方法。特征类或种类可以包括(i)物理工作点特征,比如墙壁、房顶和排气扇,(ii)无形的、非物理工作点特征,比如属性边界、区界、公共通行区、洪泛区(flood plains)、环境敏感区、特殊地震带、公共设施用地(utility easements),以及(iii)太阳能系统构件和布置。作为分类的一部分,或者除了分类以外,本实施例可以包括用于创建、分配和编辑这些对象的固有和外在属性的系统和方法。固有特征属性包括对象本身固有的属性,比如高度、重量和成本。 外在属性包括对该对象如何与其它对象相互作用的定义。外在属性的一个示例包括“缩进” 规定,其建立了一个对象与任何相邻对象之间的最小距离(缩进量)。例如,在一个特定的法定管辖范围内,不允许将构件布置在属性边界的30英尺以内。使用根据一个实施例的系统,用户可以首先如下创建“属性边界”特征类型用户可以 (i)创建名为“属性边界”的新类型的特征类,( )将属性边界特征类的直观表示设置为黑色虚线;(iii)定义一个被称为“缩进”的属性并将其分配给“属性边界”特征类,(iv)对该特征类型分配一个默认值,比如30英尺;以及(ν)将该特征类定义存储在特征类数据库中以在特定设计中使用或者用于任何项目设计的一般使用中。接着,设计者可以如下使用预定义的特征类型“属性边界”设计者可以(i)将安装工作点的一个表示创建或导入到一个实施例中,( )将预定义的类型“属性边界”分配给该工作点表示中的一个或多个几何元素(比如一条线),(iii)接下来按照需要将对象的“缩进”属性的值改变为例如20英尺,以及(iv)命令该实施例生成一个与被标记为“属性边界” 的对象的缩进规定相符合的包括了太阳能收集器布局太阳能系统设计。作为生成太阳能收集器布局的处理的一部分,本发明的一个优选实施例可以提供如下方法和系统,用于(i)创建设计规则,(ii)将这些设计规则应用于上述对象以生成一个或多个太阳能系统设计备选方案,(iii)生成所述一个或多个设计备选方案的物理布局或布置的屏幕表示和/或纸件表示,(iv)生成一个或多个设计的一个或多个版本的概要, 比如零件计数、容量、成本和能量产出,(ν)跟踪异常事件以针对用户顺应性来对设计规则进行软件编码,或者将这样的设计规则手动修改或重载(override)为一种机制以提供对用户的适应性并确保满足客户、工程、法律法规、和制造者的要求,以及(vi)为设计者生成直观信息以使得他们能够实时评估设计备选方案和设计修改方案的相关优点以帮助设计优化。根据一个优选实施例的操作方法包括⑴将描述工作点的信息导入到基于知识的太阳能CAD系统中,或者使用CAD系统来创建该几何描述,(ii)如通过分类或归类那样, 将描述了工作点的相关图形元素的每一个关联成预定义数据对象类型的一个或多个实例 (instance),并调整它们各自的属性,(iii)指定“工作区”,例如,工作点中可能打算用于项目布局的区域,(iv)选择设计优选,比如太阳能收集器类型和安装尺寸,(ν)根据在工作点的数据表示中定义的特征类别和它们的伴随属性来自动生成设计,(vi)根据一个或多个衡量标准来评价该设计,(vii)生成并比较设计备选方案,(viii)通过设计修改和对备选方案的选择来优化设计,以及(ix)生成设计异常事件(比如合约排除项)的列表。可以通过将工作点表示中的(多个)特定几何对象分类为一个特征类型的实例 (比如“房顶”或“排气扇”)来执行关联。这样的分类可以操作来将几何对象与用于执行自动太阳能系统设计的特定属性和布局约束相关联。也可以定义与工作点属性以及布局约束、设计优选、模块属性和约束、性能目标等有关的附加设计规则和属性。所有这些编码信息都可以被工具用来自动生成符合设计者偏好、项目约束、工程实践、建筑法规等的太阳能模块安装设计,并产生关联的信息,比如布线方案、材料清单、呈现、合约、概要、审计报告、根据表I的其它可传送信息或输出等。如上所述,通过向设计者提供定义一个或多个特定边界以生成布局的能力,工具还可以提供关于布局生成的控件。用户可以定义一个或多个工作区,工作区可以对应于其范围内可能放置太阳能收集器的边界(其符合其它属性和规则,例如被分类对象的属性)。 通过这种方式,用户例如可以使用工作区来将太阳能收集器模块布局限制到工作点的一部分中,比如房顶的南向部分。用户还可以定义一个或多个布局靶框,每个靶框可以对应于其范围内的布局应该符合用户定义的设计优选的独特设置的边界。使用具有独特设计优选的靶框可以允许用户例如将一种类型的模块放置在房顶的一个区域中而将另一种类型的模块放置在房顶的另一个区域中。在一些实施例中,如上所述,当设计者完成分类特征、生成布局、以及随后的修改那些布局的处理时,则可以生成关于设计处理的元数据。该元数据可以具有许多形式,并且可以包括关于设计者已经做出的动作、设计者应当做出的动作的信息,以及可能对管理者、 共同设计者、以及该设计的下游用户和接受者有用的设计信息。在一些实施例中,用户界面可以被提供来使得以软件中编码规则的异常事件的形式将该元数据的一些或全部呈现给设计者。这些规则可以源自客户要求、政府法律和法规、 工程约束、太阳能收集器制造者指南等。异常事件可以包括提供属性(比如项目工作区地点)的故障。设计者可以以各种方式来与这些异常事件交互,比如通过符合规则以从异常事件列表中去除一个项,或者通过重载规则的应用。元数据的一些或全部可以比如通过一般的存储或参考来与设计关联。此后,包括了自动化系统的设计的下游用户和处理者可以访问这些信息。还可以通过该系统来概括、导出、转译或者以其他方式操作这些信息。异常事件的列表可以用作用户的“待处理(To Do) ”列表(在用户界面上也可以如此命名),以满足软件规则并且同时提供软件规则一定获得满足的保证的方式和顺序来提供用户适应性。 还可以在历史中保留异常事件以及对它们的处理以便于以后回顾,并且可以有助于确保合约文档反映不寻常的或非标准的选择。一些实施例可以提供用于针对特定安装工作点对太阳能收集器布局设计的多个版本进行浏览、创建和操纵的系统和用户界面。对多个版本的使用可以例如允许设计者针对相同项目迅速和容易地改变输入(例如,设计优选和/或特征或项目属性)并浏览与替代设计选择(例如使用各种类型的PV模块对成本的影响)对应的结果输出(例如替代的布局、成本和性能数据)。这些版本可以为设计者提供基于用户输入中的变化对不同布局快速建模并评价结果的能力。一些实施例可以允许设计者从一个版本快速移动到另一个版本,而其它实施例可以允许设计者以一个动作影响多个版本。这些版本可以共享一组或多组元素、属性或者设计规则,以使得对一个版本作出的改变应用到相关的多个版本。例如, 对工作点的种属改变(比如增加新发现的站点特征)会影响多个设计版本。这些版本可以通过例如位于单个文件(例如组合文件,composite file)中来共享信息。1.引言本文描述的思想可以普遍地应用于太阳能收集器安装。可以使用诸如面板、吸收器、和反射器之类的各种类型的太阳能收集器以及诸如光伏(PV)模块、太阳热吸收器、和聚焦式太阳能发电(CSP)太阳能系统之类的其它能量转换技术。太阳能收集器可以自安装或置于各类安装系统上,包括倾斜的、固定的和跟踪的系统。系统可以被设计用于到公用设施的并网(on-grid)连接和/或用于离网(off-grid)系统。太阳能收集器和安装系统可以附接到不同的地方,如地面、房顶、墙壁、停车场设施等。为便于说明,本文的实施例的大部分讨论与PV模块安装有关。然而,将会理解,这些实施例可以一般地应用于如上所述的太阳能收集器。设计PV安装的任务典型地包括几个不简单并且相互依赖的处理。这些处理包括, 例如(1)基于例如可用性、成本、效率、能量需求等选择特定的PV模块;(2)在一个安装工作点生成PV模块的布置(布局);(3)针对所布置的PV模块生成布线方案(路径选择方案);(4)基于复杂和项目特定的输入来估计项目输出,包括能量产出、能量转换效率等; (5)生成下游文档,比如材料的项目清单(BOMs)、合约等。当然,上述所有一切都必须与地方法规、国家法规等相符合地完成。在表II中提供了在大型太阳能项目中执行的典型步骤的顺序。随着例如通过模块计数而测量出的安装尺寸增大,执行上述处理的难度也增加。 即使表面上微小的改变(比如在给定的一行中增加一个模块)都可能对布线拓扑和/或其它模块的布置产生深远影响,并因而对所得系统设计和系统的输出(比如电能输出)产生深远影响。另外,由于这种复杂性,对布局的优化或修改,包括重新布置、增加或者去除模块,都可能很困难,并且尤其对于大型项目会发生类似于试错法(try and error)的处理。 当设计一个项目(其通常需要十到二十个星期)或者合约完成时(其可能需要更多月),在布局中使用的最初设想的构件可能不适用并且可能需要繁重的重新设计。通过使用自动化工具,可以部分减轻为工作点创建设计的枯燥和复杂度。具体地, 在本文描述了可以基于与工程实践、设计者偏好、和工作点条件相应的编码信息来自动生成用于工作点的设计的软件或者其他计算机实现的工具。一些这种工具会使用安装工作点的CAD表示(例如AutoCAD. DffG文件)作为起点。该文件可以包括工作点的矢量或位图表示,其可以典型地表示为诸如直线、折线、曲线、正方形、矩形、样条、符号、多边形、其它2D 或3D形状、表面、立体、图像数据等之类的几何对象的集合。这种表示典型地可以不具有附于几何对象的许多或任何语义信息;特别地,在该表示中的信息可以被限制为与物理工作点的特征对应的形状和尺寸。因此,例如具有排气扇的房顶的2D平面图表示可能包括一组形成一个大矩形(房顶)的四条直线,以及另一组形成包含在大矩形内的一个较小正方形 (排气扇)的四条直线。CAD以及一些实施例的传统工具可以提供使得用户能够创建几何对象的该初始表示的能力。作为替代,用户可以从诸如计算机文件之类的存储位置中导出该表不。一些实施例可以提供对表示中的对象进行分类(例如归类或加标记)的机制,以便将对象与关于生成模块布局的语义信息(比如特征类型)相关联。例如,用户可以将一组直线分类为预先存在的“房顶”特征类的一个实例。系统可以使用该分类来将所述对象关联到一组与房顶和模块布局之间的关系对应的语义信息。该信息可能涉及房顶的固有物理属性(比如“斜度=17度”和“高度=30.0英尺”)和/或房顶的外在属性(例如“边缘缩进=1.0英尺)。这样的属性通常可以由用户编辑,并且可以对于相同泛型(general type)的不同实例而改变以及由法定管辖范围(区划法等)改变。在表III中提供了特征类的示例列表;在表IV中示出了特征属性的示例列表。类似地,用户可以将工作点表示中的另一个对象(或对象组)分类为特征类型“排气扇”的一个实例。此后,系统可以将该对象与对应于排气扇的特征属性(比如“高度=3 英尺”)相关联。在一些实施例中,实际上未限定数量的对象可以被分类为具有不同属性的不同类型的特征。对于这些各种特征中的一些,可以在明确地预定特征属性(并因此可应用于特定类或类型的每个实例并且对它们保持不变),而其他特征属性可以仅仅具有默认的实例特定的值。用户根据需要和/或方便可以调整许多特征属性(比如高度),而用户可以或者不可以编辑其它类型的特征属性,比如与整个特征类有关的那些属性。这样,每个分类的对象可以具有与其它分类对象共享的和/或相异的特征属性。与特定对象关联的语义信息还可以对应于通常对特定特征类的所有实例都不变的一般设计规则。例如,系统一般将分类为房顶的对象与适当的特征布局约束(比如“收集器布局容许=是”)和关于如何将模块布置在房顶上或周围的其它设计规则相关联。如下所述,在一些实施例中,至少在软件的初始使用期间可以重载设计规则,但是异常事件列表保持跟踪与规则需求的任意不同。以这种方式,通过用户的分类动作,可以把自动化设计系统要使用的附加的(例如更高层次的)特征信息分配给对象的原始的、简单的几何表示。另外,系统可以提供自动将对象分类为特征的实例以及对特征属性和设计属性分配值的机制。可以使用形状识别算法、学习算法或者其它专家系统来对对象分类和分配值。另外,可以修改几何对象,例如通过预处理级那样进行修复以将对象放在对于分类、特征分配或布局处理而言更好的条件或位置中。修复引擎还可以使用来自设计者的输入(例如所尝试的分类)作为用于修复对象的基础。例如,如果设计者尝试将四条直线分类为“房顶”,但是这些直线没有形成一个完全封闭的形状,则软件修复引擎可以如通过使适当的直线的端点相接那样来尝试修复对象。一些实施例可以提供诸如布局引擎软件模块之类的布局构件,其使用分类后的对象、它们的类别和编码信息(例如特征属性的组)、和如下文所述的可能的其它信息来创建模块安装设计。因此,例如,由于分类为“房顶”的对象与布局规则“布局容许=是”相关联, 所以布局引擎会知道它可以考虑将太阳能收集器放置在被标记为形成了 “房顶”的分类对象之间的有界区域中。类似地,布局引擎会知道不允许将模块放置在与标记为“排气扇”的对象对应的区域中,因为作为类或作为特定实例,排气扇可能与布局规则“布局容许=否” 相关联。这样,在创建其中可以放置模块(与其它布局规则相一致)的隐含的“工作区”时, 可以引用潜在地允许将模块放置在其中的对象(例如房顶),以使得可以不需要用户单独对工作区进行定义。还可以为用户提供对布局处理主张甚至更大控制的机制。例如,可以允许用户例如通过明确地定义一个或多个用户创建的工作区来细化可接受的模块布置的边界。用户创建的工作区可以是由用户创建的并且与包括例如“布局容许=是”的特定的一组布局规则相关联的几何对象。因此布局引擎软件模块可以配置来考虑将太阳能收集器仅放置在例如在用户创建的明确工作区、隐含工作区中的任一个或二者所包含的位置中。该方式在例如设计者希望将太阳能收集器布局限制为仅在房顶的一部分的情况下时尤为有用,其可以通过仅在房顶的期望部分中创建工作区来实现。还可以允许用户指定不同的设计优选,比如模块类型或用于太阳能收集器布局的定向,并且,可以作出不同的选择来应用于所述表示的不同区域。表V提供了采样设计优选的示意性列表。因此,例如,可以允许用户例如通过定义一个或多个靶框来对其中应用特定的一组设计优选的边界进行定义。靶框可以是由用户所创建的几何对象表示的边界或框架。系统可以将靶框与一组例如包括“PV模块=SD305”和/或“斜度=45度”的设计优选相关联。布局引擎可以配置来将例如PV模块之类的太阳能收集器放置在给定靶框的边界之内,该给定靶框与对靶框分配的设计优选以及相关特征属性、布局规则和其它可应用的属性和设计规则相一致。在一些情况下,用户可以定义多于一个靶框,因此,布局引擎可以针对工作点的不同区域中的布局来使用各不相同的设计优选组。例如,当设计者希望将一种类型的模块(例如南北定向的SD30O放置在房顶的一个区域中并且将另一类模块(例如东西定向的SP22Q放置在房顶的另一个区域中的情况下,不相同的靶框是很有用的。作为另一个示例,多个靶框可以提供不同种类的布局,以用于在工作区的不同区域中的模块行之间定义不同的间距。根据一些实施例,可以按照与太阳能收集器的放置以及任何对象和特征的属性有关的靶框设计优选、以及与其关联的布局规则或约束,来在工作区内 (例如仅在一个工作区内)和在布局靶框内的允许太阳能收集器安装的区域中生成太阳能收集器的布局。在一些情况下,由用户定义的靶框可能互相重叠或者以其他方式互相关联。在这样的情况下,可以利用靶框冲突解决规则。例如,冲突解决规则可以将靶框1定义为比靶框 2优先级高。因此布局引擎可以对按照靶框1放置的模块给予比按照靶框2放置的模块更高的优先级。这在例如设计者以重叠边界的方式定义靶框的情况中,或者在设计者希望将例如PV模块之类的太阳能收集器放置在凹形房顶的两个部分(即,倒置的或“V”形房顶的相对壁)上的情况中是有用的。由于收集器及其固定结构可能具有显著的高度,因此在将模块放置在两个房顶部分的交点处(即V形的底部)时可能会有冲突。如果一个房顶部分比另一个能接收到更多阳光,则设计者会希望为该阳光充足的部分定义一个靶框,并为背阴的部分定义一个靶框。可以允许用户对这两个靶框分配优先级,使得万一发生冲突,布局引擎会按照阳光充足靶框的设计优选而不是背阴靶框的设计优选来放置模块。这会带来安装的平均每个模块的能量产出的净增加。可以按照例如用户定义靶框的顺序或者明确的优先级来对靶框分配默认优先级。包括布局的设计结果可以被显示、保存、打印、发送或者以其他方式利用。可以基于编码信息和生成的布局来生成关于布局的附加信息,比如材料清单、提交清算单、财务分析、合约、合约条款、能量规划、成本分析、零件列表、仿真等。执行前述动作的软件控件可以被包括为CAD软件的一部分。作为替代或者附加地,可以在启动时或需要时将专用引擎、库或者插件加载到CAD软件中。作为替代,可以编写专用于实现本发明实施例的专用的或新的软件程序。本领域中公知许多用于在CAD软件环境中创建、选择和操作对象的机制;这样的机制例如包括点击选择、拖拽选择、移动选择、点击和右击图标、工具栏、弹出式菜单、对象等。Joe Sutphin的“AutoCAD 2006 VBA =A Programmer' s Reference", 101 Productions (2005), ISBN 9781590595794 公开了许多这类方法,通过引用将其全部内容结合于此。2.系统操作和用户界面图1提供了将对其设计太阳能收集器布局的安装工作点的示意性示图。为方便起见,本文讨论的实施例使用光伏(PV)模块作为太阳能收集器的示例。PV模块将被放置在建筑物100的房顶101上。房顶101可以具有一组物理特征,比如排气扇102、管道103、走道、管子(pipe) 105、大型HVAC设备104、天窗、升降机、楼梯井等。当几何投影到房顶101上 (从上方向下鸟瞰)时,特征相对于房顶会呈现为立体的/ 二维的(比如排气扇102)或者线性的/ 一维的(比如管道103)。给定特征在房顶上可能具有规则覆盖区(footprint), 比如从排气扇得到的矩形覆盖区;可替代地,特征可能具有不规则覆盖区。房顶的特征也可能是无形的,比如疾风或上升气流的区域106。房顶101和其上的或关于其的每个特征可以具有与太阳能收集器安装设计有关的一组特性。例如,PV模块一般不放置在排气扇上或者距离排气扇102预定缩进量的范围内,可以通过法规、客户策略或设计选择来确定缩进量。 类似地,PV模块一般不放置在疾风区域106中或者房顶101的边缘或角落的一定距离之内。房顶的特征还确定了放置在房顶101上的PV模块的相对性能。例如,假设房顶 101 一般最多地暴露在来自南边的阳光(以105示出)下,放置在位置A处的PV模块可能平均比放置在位置B处的PV模块(其至少部分地受到大型HVAC设备104的阻挡)产生更多的电能。图2示出了在计算机辅助设计(CAD)系统200的示例用户界面中表示的图1的安装工作点。CAD系统200可以包括安装工作点的2D或3D直观表示。该表示一般包括关于工作点特征的三维信息。为方便起见,参照2D平面图204来描述实施例。直观表示可以由诸如直线、线段、折线、弧线、曲线、圆、正方形、矩形、多边形等的几何实体来构成。这些几何实体可以是封闭的(表明它们定义了一个有界区域)、开放的、或者自相交的,可以是平面的或非平面的,并且可以包括孔、复杂表面、和地理地志。这些几何对象可以对应于物理工作点处的物理或非物理的特征。例如,表示204提供了两个多边形,每一个定义了由与图1 的排气扇特征102对应的参考数字202指示的有界区域。一组线段和曲线203对应于图1 的管道特征103。直观表示可以首先通过使用特定文件格式(比如AutoCAD. DWG)载入CAD 软件中。作为替代,可以通过使用标准CAD绘图工具在CAD软件中创建直观表示。CAD软件中的直观表示204可以仅仅表示工作点的一部分或者表示工作点以外的区域。在这一点上,CAD软件中的工作点的表示可以具有非常少的附属于它的语义信息。 例如,除了纯粹的几何形状,形成每个有界区域202的四条线段可以不与相应排气扇特征 102语义上关联,或者以其他方式具有与相应排气扇特征102有关的含义。涉及PV模块设计的排气扇特征的特性,比如典型的缩进量或者它在一天或一年的不同时间可能投射的阴影(例如预期投射的阴影),可能没有包含在该表示中。类似地,对应于房顶轮廓的线201 在CAD软件中可能不与工作点的房顶101语义上关联。而以CAD软件的视角来看,该直观表示可能仅仅是脱离了彼此相关的语义、外部工作点、或者太阳能收集器安装设计的仅具有尺寸信息的几何对象的一个集合。作为替代,该表示可以具有附属于对象的一些语义信息,例如GPS数据。在处理的后续步骤中可能使用该数据。图3示出对直观表示及其中的几何对象给予了语义的处理。通过允许自动地或由用户来将例如仅具有尺寸信息的一个“现(dumb) ”几何对象分类为特定类型的特征的实例,一个实施例的分类构件可以执行该动作。作为特征类的实例的类别的一部分,一个对象可以与一组附加特征属性相关联,附加特征属性可以包括该特征的可能与太阳能收集器安装设计相关的属性,比如高度、缩进量等。系统可以使用类别和属性来将对象关联到与被分类对象和其它对象之间的潜在相互作用相对应的布局规则,并影响所得的太阳能收集器设计。可以通过诸如将布局规则应用到对象的布局引擎之类的软件来分辨、利用和操作这些特征属性。因此,例如,折线201可以与比如“房顶类的特征类型关联。该类别可能隐含了涉及在房顶上放置PV模块的布局规则。当通过布局引擎调用时,这些规则会对特定的房顶的特征属性(例如离地面的垂直高度以及房顶坡度(pitch))进行操作。可以与其它对象属性一致地或相关地来确定与对象关联的属性。因此,例如,可以根据描述了排气扇的绝对最大海拔和在排气扇这点处的房顶的绝对高度(其本身可以由房顶的高度和坡度属性来确定)的特征属性,来确定排气扇相对于房顶的高度(其对于计算排气扇在房顶上投射的阴影可能有用)。以这种方式,包括对象类别和特征属性的编码信息可以形成安装工作点与 PV模块布局设计有关的物理特征特性的全部或部分规范。具体地,关于太阳能收集器布局设计的物理特征的特性可以包括或者形成用于在该物理特征内或周围自动放置太阳能收集器的信息集合的至少一部分。预定义的特征类别和类可以包括物理特征和非物理特征, 比如属性边界、房地产地块(parcel)边界、区划指定、公共通行区、洪泛区、环境敏感区、或者特殊地震带。具体地,一些几何对象可以被分类为允许PV模块放置的特征类型的实例,例如, 分类为房顶的几何对象可以与一般地允许在其表面上放置PV模块的布局规则相关联。这样,作为“房顶”的对象类别会使得该对象被作为隐含工作区对待。类似地,一些几何对象可以被分类为禁止或者以其他方式一般不允许放置PV模块的特征,例如,分类为池塘或空调单元的几何对象可能与一般不允许在该障碍物上或在该障碍物的预定边界(例如一定距离)之内放置PV模块的布局规则相关联。可以定义会影响PV模块的放置的其它布局规则,包括对在给定特征上或附近放置模块实现建筑法规应用、风力条件、温度条件、电力和热力产生限制的约束。在创建相应对象之前可以已有或者预先存在与给定类型的特征相关联的特征属性的形式和内容。可以预定义物理特征的类及其对应的编码信息。因此,例如,对应于房顶或其它表面的属性组和默认值以及应用于它们的设计规则可以存储在数据库中和/或作为类定义的一部分(见表III-表IV)。当将特定对象分类为房顶时,类定义可以被例示并与特定对象相关联。当然,该软件可以提供一个可由设计者定义附加特征类型并用来分类的机制。类似地,可以由设计者或管理员修改针对给定类型的对象的默认值或预先存在的编码信息,包括属性默认值和布局约束。可以在生成布局之前和/或生成布局之后修改编码信息。在生成布局之后对特定编码信息(比如特征属性)的修改可以触发基于新数据集的布局的自动重新生成。用来对对象进行分类、修改或者以其他方式关联到属性的机制或者用户界面控件可以是多样化的。例如,如图3所示,用户可以选择对应于房顶101的折线201。随后用户可以点击“房顶”或“分类为…”工具栏按钮或图标,或者从一个菜单选择类似命令。用户还可以以指针工具来在折线201上右击,以同时选中折线201并打开允许分类为房顶的一个环境菜单310。在选择和分类过程中,可以将对象的表示改变为指示其选择或者分类。例如,可以修改它的颜色,可以改变它的线宽或线型(如本文以虚折线201指示的那样)。在本领域中用于在用户界面上对对象执行动作的多种类型的控件是公知的。可以将多个对象分类为同类特征的实例,比如“房顶”,这可以使得该系统能够为包含多个房顶的工作点创建布局。可以不同地表示不同类型、或子类型的特征,比如将这些特征放置在用户界面中的不同绘图层和/或可以给予它们不同的颜色或线宽。可以提供对对象去除分类的控件。可以采用用于自动修复无效或有缺陷的工作点几何图形的机制。例如,在一个实施例中,假设设计规则要求“房顶”应当以封闭折线来表示。又假设在工作点表示中对应于房顶的几何信息由公共端点非常靠近但没有重合(即没有形成封闭形状)的四条线段构成。如果线的端点保持不重合,则该几何表示会导致处理错误或者产生不正确结果。在一个实施例中,可以提供一个机制来在分类期间预处理几何元素,例如,将未重合端点彼此接近到规定程度之内的多条线段转化为其端点共享的线段。用于修复无语义几何数据的几何算法是现有的。该软件还可以提供控件来允许用户看见和/或修改一些或所有与给定对象关联的编码信息,比如可编辑的属性。因此,例如,用户界面可以包括对与该对象关联的一些或所有特征属性的表示进行显示的属性上卷式菜单(roll-up)、工具栏、或选项板311。一些特征属性(比如房顶的垂直高度312)可以由用户来调整。可用来放置PV模块的房顶的诸如所得面积(例如以平方米为单位)之类的其它特征属性可以由软件来计算,例如受到布局约束、特征属性等的相互作用的支配。诸如对可应用于给定对象的布局规则的指示(例如指示特定对象适合于放置PV模块)之类的其它信息可以不对用户显示,或者对用户可见。用于修改用户界面中的对象属性的多种控件是已有的。一些实施例可以包括特征类的分级结构。例如,特征可以分成三个主要大类可放置表面、实体障碍物、和线性障碍物。每个大类可以包括几种特征。例如,可放置表面可以包括房顶、田地、墙壁等。实体障碍物可以包括排气扇、柱子、HVAC单元、凹陷、树、房顶出入口、天线、卫星、楼梯、排水沟、阁楼、拱顶(roof shot)、天窗、枕木、测量点、通风孔、阀门等。 线型障碍物包括走道、装备、伸缩接头、墙壁、管道、管子等。每种类型的特征还可以包括子类,例如天线障碍物可以被细分为轮廓天线(outline antenna)、点天线(point antenna) 等,并且管道还可以细分为电缆管道、水管、支承管、垂直管等。一些障碍物既可以被分类为实体型也可以被分类为线型的,这取决于具体的几何形状(例如一组楼梯)。类似地,图4示出了可以将第二对象分类为与语义关联的处理。这里,通过使用环境菜单310和属性选项板311,将房顶上对应于排气扇的这组直线或者折线202分类为实体障碍物,即子类“排气扇”的“HVAC单元”。这里,虚线用作提示用户该特定对象已被选中的可见提示。属性选项板311示出针对该排气扇的采样相关特征属性和它们的当前值,包括高度、缩进量、子类等。选项板311示出图4中的对象202已经被分类为大类(或类)是实体障碍物315、类型是HVAC 317、以及子类是排气扇319的特征。通过这种方式,可以对与物理安装工作点对应的多个对象分类。在一些布置中,无需要用户手动地将对象如上分类,而是系统可以初始地尝试基于例如对工作点表示的试探和分析或者基于已经可用的元数据来对对象自动分类,例如,在预先作出的名为“天窗”的CAD绘图层中的对象可以被自动分类为天窗。系统可以允许或要求用户进行后期修改或验证。系统可以使用关于几何对象的任何信息(比如GPS数据)来自动分类对象。并非所有属性都需要与该表示中的特定特征或几何对象相关联。例如,该软件可以允许使用和设置全局项目属性,比如工作点位置(邮码)、工作点的定向(指北针)、绘图比例、测量单位、国家位置、客户信息(客户姓名、地址等)。项目属性可以包括客户属性,包括联系信息、法律地位、财务状况、实用信息、实用率和能耗,并且可以预定义。其它项目属性可以包括土壤类型、气候条件、设计温度、设计抗震力、工作特性、负载限制、和电气互连要求等。该信息可以由设计者手动地输入,或者可以通过链接到用来保持客户账户信息的诸如客户关系管理(“CRM”)系统之类的外部数据源而进行访问。表VI提供了示例性项目属性列表。类似地,诸如项目设计规则(例如全局布局规则)之类的一些设计规则,比如调节任何PV系统与公共设施的互连的电源互连标准,可以独立于任何特定特征来操作。预定义的项目设计规则可以形成电气规程、属性缩进要求、安全要求、互连要求、工程规则或最佳实践、熔断要求等的规范。这些规则可以适用于产生可以连接到公共电网、私人电网或其它规范的布局。在设计中用到的模块类型还可能影响布局引擎如何操作,这是因为模块类型可能关联到特定的模块具体信息,比如模块属性,例如模块间的间距、电压、布线要求、重量等。 一些模块具体信息可能关联到特定的模块类型、安装系统、逆变器类型等。不同模块设计规则可能基于每个模块、每个模块串、和/或每个模块子阵列来操作。因此,例如,特定模块可以需要最小的模块间距和操作温度或者特定的布线配置,比如根据温度设定的每串的模块数量。表VII提供了模块属性的示例列表。如图5A所示,还可以指定包括了要使用的模块类型502和/或安装系统、对模块行和列进行布置的定向503、平铺布局的起点(或原点)504、逆变器类型(其中存在选项) 等在内的设计优选。可以为用户提供对可操作的全局属性、设计优选、和/或模块属性中的一个或多个进行修改的能力。例如,可以将模块相对于真北(true north)的定向以数字形式输入适当的控件中,如在503所示的。作为替代,可以通过选择已有的线(比如房顶的边缘)并指示模块定向应当等于所选的线来设置定向。可以通过例如将坐标输入到适当的空间504中和/或以鼠标或触摸屏之类的指示装置在直观表示中选择一个点(如506所示), 来设置布局的起点。可以提供一个控件,比如环境菜单520,来调用太阳能收集器安装布局引擎。如图5B所示,可以调用布局引擎以便基于并符合于相关编码信息(比如特征类别、特征属性、工作区、设计优选、全局属性、模块属性、布局和设计规则等)生成太阳能收集器设计。在PV模块的情况下,该布局可以包括如在该表示中显示的PV模块的物理布置以及布线系统、固定系统和硬件、用于适当安装操作的电气组件的伴随布置等。在一些情况中,可以以符合于所有(或者基本上所有)规则和针对所有对象的约束的方式来放置PV模块。可以使用许多不同的方法和系统来创建这样的一个PV模块布局。尤其是系统的布局引擎构件可以使用平铺算法创建布局。在一个这样的算法下,如图6A的流程图所示,首先可以通过对工作点处的物理特征的数据(尤其是尺寸)进行采集来定义(60 包括任何几何对象的工作点的表示。可以通过使用基于GPS的测定装置来完成这一步,或者作为替代,可以使用CAD软件来创建表示的几何对象。这一步骤可以与步骤610交替进行。在步骤610,该表示中的对象可以被分类为特征,并且可以对特征属性设置适当的值。这一步可以由用户手动完成,也可以由系统通过自动化的特征识别来自动完成。用户可以将一个或多个对象分类为提供了允许或优先进行PV模块布局的区域的特征,比如田地或房顶。在步骤612,用户可以按照来自所有者的指示来指定一个或多个工作区,例如优先进行PV模块布局的区域。工作区的明确定义是可选的,并且将在下面进一步讨论。在步骤615,可以设置或修改设计优选、项目属性以及其它编码信息。在步骤620,可以首先不考虑障碍物或者其它干涉特征(比如排气扇)而在一个或多个工作区(例如已知“容许”进行放置的对象,比如房顶表面)上平铺PV模块。例如可以通过在隐含的工作区(例如分类为支持PV模块的特征的对象)上放置PV模块来实现该操作。可以根据相关模块设计规则和属性通过在定义的空间中创建网格或阵列来执行平铺。 可以对平铺进行参数改变,包括行之间的间距、相邻的行之间和/或沿着不规则边缘(比如弯曲的道路或地界线)的偏移量。另外,平铺可以对应于各个模块(具有各种单独规定的长度或宽度)或者可以呈现任意布置的模块组(例如,连接到相同固定结构或跟踪机构的模块)。另外,可以规定周期性地中断平铺以便适应便道、强制灭火口、或其它类型的设计规则。在一些实施例中,可以在直观表示中实际创建和布置对应于布局模块对象的几何对象, 如图6B所示。作为替代或者附加地,该布局可以是逻辑上的,使得以数据结构来表示模块。 在这两种情况的任一种情况下,都可以将几何对象分类为与特定特征属性和布局约束相关联的相关模块类型的实例。返回图6A,在步骤625,系统随后可以再次浏览(second pass)平铺的模块,将其布置与应用于属性的一个或多个设计规则相冲突的任何模块标记为非法。因此,例如如图 6B所示,可以将房顶201的整个表面平铺模块。再次浏览可以随后依次考虑每个模块,并对非法(即,不按照该表示和对象放置的规则)放置的任何模块进行标记。这可以例如通过循环通过每个放置的模块以及针对每个放置的模块循环通过所有设计规则并将相关的设计规则应用于查找任何冲突来实现。因此,例如,可以将处于排气扇202的物理覆盖区之内或者距离排气扇202 —定缩进量的覆盖区之内的任何模块标记为非法。类似地,在疾风地带的一定距离之内(例如图1中的106)的任何模块可以被标记为非法。可以将非法模块变灰、自动去除、移动到另一层、或者以其他方式在数据结构中相对于“合法”模块而改变。标记可以是明确的,如在软件数据结构中的“非法? ”字段或属性中,或者可以是在处理的操作中隐含的。非法模块可以保持能被用户访问,也可以不能被用户访问。可以支持不同级别的非法一些模块可能是严格非法的,从而设计者不能重载其去除;其它模块可能是“轻度(soft)”非法的或者不赞成的,从而允许设计者恢复它们的放置。通过使用不同的颜色、 层等可以支持不同级别的非法。布局处理的结果是PV模块布局符合针对该工作点的设计规则和属性。如图5B所示,布置在530处显示为实阴影线的模块是合法放置的。在参考数字为533的区域中没有模块,因为该相关区域处在障碍物的物理边界之内。该系统可以包括选择一个或多个其他非法模块并将它们恢复为正常放置的能力。在一些情况下,这可以通过否认应用于特征属性的至少一个规则而执行。布置在535处并显示为灰色阴影线的模块可以是轻度非法的,它们可能违反了可选的缩进要求。如下文所述,可以允许设计者“激活”或恢复这样的轻度非法模块。—些模块放置可能是没考虑与其它模块的关系而非法的,比如将一个模块放置得太靠近排气扇的情况。然而,一些非法配置可能仅仅相对于其它模块才明显,因此可以递推地识别。例如,大多数连接到电网的PV安装都要求预定数量的模块电串联地连接。例如, 当SimPower 305模块用于加利福利亚北部并连接到600Vdc逆变器时,必须在每个串联的串中连接恰好12个模块。这样,在消除“严格”非法模块之后,系统会执行对剩下模块的附加“浏览”以执行对不符合设计规则(比如模块间连接规则)的另外模块的递推式或回归式检查。这样的模块会如图5B中那样变灰。返回图6A,在步骤630,在自动生成布局之后,可以对用户呈现可选项以修改至少一个对象或者广泛地修改该项目。允许用户修改放置的用户界面控件是多种多样的。非法模块可以放置在该表示的单独的层上和/或具有不同的颜色或风格,如图5B所示。用户可以改变非法模块的层以使其合法,反之亦然。用户可以右击或以其他方式选择一个模块来改变其状态。可以提供控件来允许删除合法放置的模块,可以包括绝对删除或者将模块移动到“删除”层。必要时删除的模块可以随后被恢复。可以提供撤销动作或者重做被撤销的动作的控件,比如还原一个模块。下面将进一步讨论撤销和重做。可以提供控件来包括改变规则或归类以及重做自动布局的能力。系统的修改构件可以提供一个用户界面或者其它机制,允许替换已经放置但后来又去除了的平铺(例如根据规则违反)。类似地,可以提供一种机制以允许从布局去除放置的模块。如在步骤635所示,布局的用户修改会引起修改后的布局不符合相关设计规则和属性的状态,或者以其他方式具有冲突。例如,用户在特定点处对模块的手动添加可能违反了关于缩进的设计规则。这样,对布局的诸如添加、替换或去除之类的修改可能引起布局的重新计算、布局的路径选择/布线的重新计算等。布局的修改或与布局规则的任何不相符可以记录在下文将详细讨论的异常事件列表中。在步骤640,用户界面控件可以提供来允许用户对生成的布局执行附加动作。例如,可以保存、打印和/或发送布局。另外,布局信息以及规则和对象的归类可以用来生成附加的素材。例如,可以使用与该表示中的特征有关的编码信息(例如用户选择的太阳能收集器模型的效率,以及与房顶区域接收的阳光量有关的能量预测仿真规则,比如纬度和/ 或高度)来对特定模块布局的性能(例如能量产出)进行仿真。这种结果(即,仿真结果) 可以显示给设计者或以其他方式对其可用。作为另一个示例,可以对模块及其关联的构件 (比如电线和电逆变器)的数量和成本记账,并用来生成材料清单、成本估算、账单等。通过一些实施例可以将诸如与典型布局设计处理相关地记录的多种类型的文档或可交付物自动生成为下游输出。3.用户定义的工作区到此为止所描述的系统主要提供用于通过使用由特征类别定义的隐含工作区来对太阳能收集器(尤其是PV模块)在允许的表面或对象(比如房顶)上的布局。附加地或替代地,系统可以提供用户界面来允许通过给予用户对将工作区定义为和用作允许放置模块(尽管违反了其它设计规则)的区域的明确控制,来更精确地控制布局处理。具体地,如图7A所示,系统可以允许用户定义用于约束或扩展模块布局的一个或多个用户创建的边界,例如明确的工作区。工作区可以代表边界、范围、或与物理安装工作点处的位置对应的允许模块安装的区域组。工作区可以与对应于物理安装工作点的对象或对象组具有共同的边界。作为替代,工作区(比如701)可以仅覆盖其他允许布局对象的一部分。工作区还可以跨越多个对象,并且可以定义多个工作区。可以通过以指针装置(例如鼠标、触摸板、操纵杆或触摸屏)或键盘快捷键选择“工作区”工具栏图标并随后绘出矩形、折线、或其它对象来创建一个明确的工作区701。用户可以通过定义几何对象的任何方法,包括拖拽矩形和点击“工作区”工具栏图标或者使用环境菜单,来定义工作区。在所示实施例中,用户可以将对象标记为(或者以其他方式关联为)明确工作区。用户创建的工作区可以但不是必须与任何对象(例如建筑表面或田地,或者整个直观表示)具有共同的边界。除了隐含工作区之外,或者代替隐含工作区,可以使用用户创建的工作区。在一些情况中,布局引擎可以配置来将PV模块仅放置在隐含工作区(比如房顶或田地)与明确工作区之间的相交处。在其它情况中,明确工作区可以定义与其它可放置的对象或隐含工作区无关的允许放置的区域,或定义除了其他可放置的对象或隐含工作区之外的允许放置的区域。明确工作区可以用来重载对象的默认放置规则。这使得设计者可以对在哪里放置模块具有更多控制权,比如是否将模块仅放置在房顶的一部分上。例如,如图 7A所示,如果设计者希望考虑将对象仅放置在房顶201西边部分中,则设计者可以创建工作区701。在一些情况中,在所得的布局中,模块可能仅放置在房顶201与工作区701的相交处。因此,模块可以放置在位置A(由于其符合其它规则,比如针对管道203的规则)处, 而不放在位置B处。在图7B中示出了一个这样的布局。用于在布局引擎的背景下实现明确工作区的一个算法如下参照图6A,在步骤 620,优选地仅在包含于可放置对象(比如房顶或者田地)和明确工作区内的位置处平铺模块。该方法随后可以如前所述那样前进。作为替代,可以在所有允许的表面上平铺模块,并且在步骤625,如果它们落在所有明确工作区的边界之外,则接着对它们进行标记和/或去除。用户可以比如通过移动或调整工作区的边界来修改工作区。工作区的修改可以引起或者不引起之前生成的布局的自动重新计算或重新生成。4.靶框作为对工作区的补充或替代,系统可以为用户提供针对一个或多个局部化设计优选组的应用来定义一个或多个边界(例如布局靶框)的能力。靶框允许设计者为期望的布局创建异种的区域,并且可用来对布局处理提供另一个控件层。如前所述的布局引擎可以使用用于对模块布局的单个设计优选组(例如模块类型、定向、起点等)。作为替代,可以对用户界面提供控件来允许用户定义一个或多个靶框,每个靶框都可以包括边界。多个靶框可以与独立且异种的设计优选组相关联。不同的靶框可以具有不同范围在一个靶框的边界之内的PV模块的布局可以通常(也有例外)至少部分地由与该靶框关联的用户定义的设计优选所确定。这样,如图8A所示,用户可以定义第一靶框801。靶框边界801可以与对象(比如房顶201)和/或明确的或隐含的工作区具有共同的边界;或者,如图8A所示,靶框边界 801可以仅覆盖可放置对象(比如房顶201)的一部分。靶框边界801还可以覆盖超过一个可放置模块的工作区和/或对象。第一靶框801可以具有与之相关联的设计优选组,如 702-705所示。靶框设计优选可以包括PV模块类型或者模型、模块定向为真北、行间距、倾斜角度、固定方法、串输出电压、行间偏移以及靶框尺寸和形状、平铺起点、和其它属性。(见用于附加示例的表V。)在一些实施例中,用户可以修改一些或所有设计优选或者可以在默认条件的基础上继续。可以创建第二靶框802,并且类似地,该第二靶框可以覆盖工作区和 /或可放置对象(比如房顶201)的全部或者部分。第二靶框802可以具有与之相关联的不同设计优选组。靶框可以由用户创建或者可以自动定义或预定义。例如,覆盖了整个特定工作区或者整个工作点表示的一般默认靶框可以初始地被定义为默认。作为替代,软件可以要求用户在操作布局引擎之前定义至少一个靶框。可以例如通过选择一个几何对象并点击工具箱图标或者使用805所示的环境菜单来创建靶框。可以提供用于调整靶框规则的多个控件;例如,可以允许用户挑选一个线性参考对象用作靶框中模块布局的定向。在一些情况下,放置在靶框与工作区之间的相交处或重叠处的模块布置将取决于靶框的设计优选。因此,例如,参照图8A,假设已经(隐含或者明确地)创建了与房顶201 具有共同边界的工作区。当调用布局引擎时,可以按照第一靶框801的设计优选在位置A 处放置模块;可以按照与第二靶框802关联的设计优选在位置B处放置模块;不可以在位置C处放置模块,因为C没有处于靶框之内。在一些情况下,靶框可以重叠,如位置D所示, 这表明可以将两个或更多组的靶框设计优选应用于位置D。在这些情形中,一些系统将会使用下文结合图9进一步详细描述的靶框冲突解决规则。模块不可以放置在位置E处,因为位置E没有在工作区之内。图8B示出了根据前述的示意性布局,其中已经以有利于第一靶框801的方式解决了区域D中的布局冲突。下文进一步讨论靶框冲突解决规则。靶框是有用的,例如因为它们可以允许设计者指定用于工作区或对象(比如房顶)的第一部分的一组设计优选和属性,以及用于相同工作区或对象的第二部分的第二组设计优选和属性,如图8A和图8B所示。因此,例如,如果要将太阳能收集器放置在相同房顶的两个部分上,但一个部分是平坦的而另一个是倾斜的,那么设计者可以选择适合于这两种房顶类型的两个不同的相对于垂直方向的固定角度、相对于南方的定向、PV模块模型、 和/或固定系统。类似地,如果房顶的一侧相对于另一侧更多风,则用户可以使用包括耐风的模块和固定系统的设计优选来对多风的一侧创建第一靶框,并使用不太耐风的模块和固定系统来对房顶少风的部分创建第二靶框。用户还可以(如采用用户定义的工作区来)移动或调整靶框,并且这可以为设计者提供使替代布局快速可视化的能力。因为靶框可以为模块放置提供不同的设计优选组,所以重叠的或相邻的靶框可能引起放置中的冲突。该重叠可能是重大的。靶框冲突解决规则可以用来解决模块放置中的矛盾。冲突解决规则的一个简单形式是以创建次序对靶框分等级,以最先创建的或者最后创建的靶框具有最高优先级。也可以使用字母顺序。可以为用户提供控件来明确地改变靶框优先级次序。完成该操作的一个方法是将每个靶框与对其定义优先级的用户可编辑设计优选相关联,例如“优先级=2”。如果有默认靶框,则默认靶框可以具有最低优先级。可以按照靶框冲突解决规则使用多种方法来创建模块布局。作为一个示例,可以如上所述给予靶框优先级,并且在放置中存在冲突的情况下,可以按照较高优先级的靶框来对放置给予优先级。例如,可以不考虑优先级,按照上述的初步应用于至少部分落在每个靶框边界之内的对象和特征的方法,来对所有定义的靶框生成独立的、部分布局。可以并行地执行该计算。如果没有靶框重叠,则两个部分布局的联合可以被取作“最终”布局并可以保存、存储或呈现于输出装置上。然而,如果存在重叠,则可以基于冲突解决规则来调解放置的模块之间的冲突。在模块冲突的一些情况下,可以去除较低优先级的靶框中的模块,从而修改或调节对应于较低优先级靶框的部分安装布局。如图9A所示,一个布局方法包括,在开始900该处理时,首先在步骤901输入工作点数据(例如边界和结构的物理尺寸);在步骤902将对象分类并创建工作区和靶框;在步骤904,在每个靶框中创建模块的布局;在步骤906,分析每个靶框中的每个模块与其它模块和/或其它靶框之间的冲突放置;在步骤908使用靶框优先级规则来解决任何冲突,并在步骤910允许用户修改根据前述方法作出的模块放置。处理在912结束,然而将会理解,可以进行很多附加的居间处理和类似于上述步骤的重复步骤。实现上述操作的另一个方法是以从最高到最低的优先级次序分析每个靶框,并在有可能的时候(根据前述方式)在靶框中放置模块,假定这样的放置不会与已经放置为更高优先级靶框中的一部分的模块相冲突。按照对在给定靶框内交叉(或者包含或包含于该给定靶框)的特征所应用的靶框设计优选、特征属性、模块属性、和项目属性,对PV模块的放置一般会发生在给定靶框的边界之内。该方法产生了一组连续的安装布局,其中每个连续的布局都符合当前和所有更高优先级靶框的设计优选。可以将连续的安装布局中的每一个呈现于或者存储在装置或介质上。图9B示出了用于根据被分类对象、工作区、和冲突靶框布置模块的另一示例处理。在处理的开始930之后,在步骤931,用户可以首先将对象分类并创建一个或多个工作区和/或靶框(或者可以使用默认的或隐含的工作区和靶框)。在一些实施例中,靶框可以与创建的相对顺序关联,创建的相对顺序可以确定靶框在随后的冲突解决方案中的优先级。在步骤932,可以根据第一靶框规则来放置模块,其中“第一”可以通过上述相对优先级来确定。可以仅在第一靶框和一个(隐含的或明确的)工作区的边界之内放置模块。 如果定义了明确工作区,则可以仅在靶框、可放置表面、和明确工作区之间的交叉部分中放置模块。如果没有定义或没有使用明确工作区,则可以在靶框与由可放置对象(诸如房顶) 定义的工作区的交叉部分中放置模块。在步骤933,与一个或多个设计规则冲突的模块(诸如违反排气扇要求的缩进量)被标记为非法的,然后被移除或以其他方式从有效布局中去掉。在步骤934,可以针对第二最高优先级的靶框(如果存在)重复步骤932和933。 但是,一些情况下,除了与工作区交叉的一般要求之外,可以仅将模块放置在第二靶框中, 如果它们不与已放置在第一靶框中的模块冲突。这可以等效于放置阶段(932)来实现,例如,从不将模块放置为与第一靶框冲突。可替换地,可以不考虑第一靶框的模块或设计优选而在第二靶框中放置模块,随后,如果发现其与放置在第一靶框中的模块(或者关于其的设计优选)冲突,则将其移除(步骤933的等效期间)。在步骤935,可以针对第三最高优先级的靶框(如果存在)重复步骤932和933。 可以根据第三靶框的规则,在第三靶框中放置模块,但是仅当它们不与放置在第一或第二靶框中的模块或其设计优选冲突时才放置。可选地,可以依次针对所有剩余靶框来重复该处理,如步骤936所示。在步骤937,或者在更早的时候,可以允许用户来修改模块放置,这可以导致布局的全部或部分基于上述步骤而重新生成。如上所述,可以采取附加的居间步骤,并且在处理在步骤938处结束之前,根据需要重复上述任意步骤。最终的布局可以显示在计算装置上,或者以其他方式呈现或存储。5.项目分级结构和存储可以通过项目状态信息来对包括项目工作点表示、特征及其类别、和太阳能收集器布局的太阳能安装项目设计进行表征。一般来说,项目状态信息包括可以用来重新创建 (而不是创建更多)特定太阳能收集器安装设计的信息。因此,例如,项目状态信息的典型使用是允许设计保存在非易失性存储器中。对特定设计调用“保存”功能或控件可以使项目状态信息被写入硬盘中。然后,可以终止(清除其所有的工作存储器)并重新启动软件程序。然后,用户可以选择“打开”功能或控件并且使软件指向保存的项目状态信息。然后, 该软件可以加载并操作该项目状态信息来重新创建太阳能安装项目。一些情况下,可以将软件显示特定设计时的工作存储器的整个内容看作“项目状态信息”,这是因为该项目状态信息足够完全地指定一个特定设计。但是,使用项目状态信息的一个优点是可以仅使用工作存储器的一个子集(或者甚至其他数据),从而减小了项目状态信息的大小和复杂度。例如,给定的设计可以包括一百万个收集器的布局,所有这些收集器都为TlO模块类型,并且被布置为1000X 1000的子阵列。存储这种设计的一种方法是,例如,分配并存储一百万个“收集器”数据结构,每个“收集器”数据结构具有其自己的相关属性(诸如“模块类型=τιο”、位置、定向等)的副本。可替换地,系统可以简单地沿着 "Τ10模块的、定向为0度的1000Χ 1000子阵列”的行来存储状态信息。这种项目状态信息的更紧凑的表示可以更方便存储并且更容易修改。例如,如果设计者将所有模块的模块类型从TlO改变为其他类型,在第一示例的情况下,执行该改变可能需要扫描并对一百万个数据结构进行改变。但是,在第二示例的情况下,仅进行对状态信息的单独改变就可以完成修改。在一些实施例中,给定设计的项目状态信息将包括所有的设计输入,例如,用来重新生成设计的数据。因此,例如,项目状态信息可以包括这些输入信息,例如,包括几何对象的工作点的表示、这些几何对象作为特征的类别、每个被分类对象的特征属性、设计优选、 工作区定义、靶框定义及伴随的设计优选、项目属性等。项目状态信息还可以包括其他类型的输入,例如,用户对生成的布局信息的修改。例如,当用户对生成的布局手动添加模块时, 例如,当用户将特定模块的状态从“非法”改变为“合法”时,该模块的状态会反映到项目状态信息中。项目状态信息还可以包括输出信息,例如,生成的布局、生成布局的性能和成本特性等。例如,特定设计的材料清单是该设计的输出,这是因为其为该设计的输入(例如,设计优选)的函数。这可以允许例如对输出信息进行高速缓存以减小计算需求。项目状态信息的有效管理是很难的。特别地,在一些实施例中,项目状态信息可以提供“冲突”信息,例如,当用户将PowerGuard模块放置在被指定为TlO的靶框边界内时。如果系统来实行用户的这两个动作,则对具有项目状态信息的有效和有力表示会是有用的。因此,在一些实施例中,项目状态信息可以被看作分级结构元素的排列,其可以以数据结构的形式表示。在一些情况下,分级结构可以趋近树状结构,其中对子元素分配单个父对象。在其他情况下,分级结构可以是更一般图形的实例,例如,当分级结构中特定对象具有多于一个父对象时。图IOA至图IOB提供了可以由太阳能收集器布局设计工具使用的项目状态信息分级结构的示例。特别地,如图IOA所示,整个项目1000可以包含工作点表示1001,其可以包括一个或多个特征1002。每个特征1002本身可以包含特征属性。工作点表示还可以包括工作区1005,例如图IOA中示出了两个工作区。每个工作区1005可以包含一个或多个靶框1010,例如,第一工作区1005可以包含两个靶框1010。这可能是以下情况,即,在工作点表示中,靶框1010落入给定工作区1005的边界之内。在单个靶框与多个工作区重叠的情况下,靶框对象1010可以在多个工作区之间共享或重复。可替换地,可以调整分级结构来使用工作区-靶框的交叉部分(而不是整个靶框)作为工作区1005的子对象。如上所述,根据一些实施例,太阳能收集器将放置在靶框1010与工作区1005之间的交叉部分中。由此,每个靶框或工作区-靶框交叉部分可以包括靶框1010内的收集器的一个或多个子阵列1015。给定靶框1010中子阵列1015的数量或构成可以是多个变量(包括位于靶框的边界之内或周围的障碍物特征)的函数。例如,使靶框平分的线性障碍物(例如墙壁)可能使得靶框1010内的收集器的布局被分为两个子阵列1015,一个位于墙壁的一侧。一些实施例可能使得子阵列1015具有矩形形状,其他实施例可能创建这样的子阵列 1015,其来自靶框1010中每个邻接的收集器组,而不考虑其形状。再一些实施例可能利用其他的规则1004(例如,布线或输出要求)来形成子阵列1015。给定子阵列1015还可以被分成收集器1025的串1020。在一些情况下,如在使用 PV模块以及上述情况下,取决于所选择的模块,可能需要给定数量的模块通过电线以特定形式(例如串联)连接在一起,以产生需要的输出电压。因此,例如,如果给定子阵列在峰值功率下需要的输出电压是150V,并且如果用来形成子阵列的特定模块的每一个在峰值功率下输出15V,则可以将模块组成为每串10个模块的串来进行安装。每串的收集器可以串联连接,并且子阵列的每个串可以与子阵列的其他串并联连接。因此,给定的子阵列1015 可以由多个串1020构成。这些串1020中的每一个可以由多个收集器1025构成。如图IOB所示,给定太阳能收集器本身可以由元素的分级结构构成。例如,PV模块可以由电池串1030构成,每个电池串1030包括一系列电池1035(就如图IOA中所示的子阵列1015可以由模块1025的串1020构成一样)。例如,一个15V的模块可以由并联连接的三个电池串构成,其中每个电池串包含10个串联连接的1. 5V的电池。分级结构的每一级的每个元素可以与一组属性相关联。例如,给定串的属性可以包括模块计数、串位置等。以上已经说明了可能与特定工作区、靶框、项目、和特征关联的一些可能的属性。一个元素的属性可以被绝对地表示或者参考另一组属性来表示。例如,属性的默认值可以是从表示分级结构的数据结构中的父元素继承的,并且这些默认值可以被给定子元素存储的属性值重载。类似于属性,布局引擎采用的诸如特征布局规则之类的设计规则可以与分级结构中的各个元素关联。不是特征的特定实例所专有的设计规则可以与项目或工作点普遍关联,如图IOA中的1004所示。设计规则也可以是特定布局或设计引擎或者没有表现在项目状态信息分级结构中的其他项所固有的。类似地,设计优选还可以与分级结构中的各个元素关联,例如,项目设计优选可以与项目元素关联。分级的数据结构还提供了属性、设计优选、和规则的归类灵活性,例如,被用户放置或修改的收集器可以被分类为具有伴随属性的特征1002,可以保持在分级结构的单独级(如1025所示),或者可以为上述二者。在一些实施例中,被软件用来表示项目状态信息(例如,用于存储和检索项目)的数据结构,可以被表示为元素、属性、及其相关设计规则的集合之间的分级关系。例如,可以以XML型格式来表示项目状态信息,其中顶层的工作点节点可以包含特征及其类别的列表。工作点节点还可以包含许多工作区节点,工作区节点又可以包含许多靶框节点。每个靶框节点可以包含多个子阵列节点,以此类推。在数据结构中可以包含重新生成布局的足够信息这一意义上,项目分级数据结构可以表示设计项目的状态。6.项目异常事件在一些实施例中,如上所述,随着设计者完成对特征进行分类、生成布局、以及随后的修改这些布局的处理,可以生成关于该设计处理的元数据。元数据可以根据应用到项目状态信息的规则(例如,特征属性、设计优选、版本信息等)来确定。该元数据可以具有许多形式,并且可以包括关于设计者已采取的动作、设计者应该采取的动作的信息,以及对管理者、共同设计者、以及该设计的下游用户和接受者有用的设计信息。系统可以使用元数据和其他数据来生成“异常事件”列表,其可以将异常情况编码为元数据,例如,项目状态信息本身、反映在设计输出中的项目状态信息违反规则,或某种其他情况。异常情况以及相应的异常事件可以与用户的省略、规则的违反、太阳能收集器制造者规范的违反、客户需求的违反、工程原理的违反、物理空间约束的违反、以及公司工程策略的违反等有关。这种列表可以允许设计者在动作顺序上具有更大的灵活性,以使得在生成安装设计的同时还确保能够最终执行适当的动作,并且不漏掉诸如设计缺陷之类的异常情况。具体地,异常事件列表不是强迫以特定顺序执行工作流程,而是可以允许设计者以他的或她的选择的顺序来执行动作。可以将异常事件列表呈现给用户而不要求用户在执行另一动作之前解决任何异常事件(或异常情况)。异常事件列表还为设计者提供决定是否要解决特定异常事件的能力。异常事件列表还可以为关于设计的重要信息(例如,有问题的模块放置等)提供简单的界面。因此,允许用户有效地(至少暂时地)忽略异常,而在作为“待处理”列表的一部分的用户日程中对该异常进行处理。系统可以通过例如使异常事件或异常事件列表在用户界面中是非阻止(non-blocking)的来为用户提供忽略给定异常事件的选项。还可以向用户给出选项以遵守软件对异常情况的预期处理,例如通过提供遗漏信息或者从所生成的或用户修改的布局中移除非法模块。元数据和异常事件还对保持和生成下游文档(例如,合约排除项)是有用的。在一些实施例中,包括异常事件在内的一些或全部元数据可以与设计关联,例如通过一般的存储或者通过参考上述数据结构分级。之后,设计的下游用户和处理器(包括自动化系统)可以使用该元数据。还可以通过系统来概括、导出、转译或者以其他方式操作这些元数据。此外,元数据以及由此生成的异常事件可以包括关于合约排除项、对设计者的警告、和工作点表示或布局中的错误的信息。如图11所示,可以提供用户界面1100,使得关于设计的一些或全部元数据可以以异常事件列表1105的形式呈现给设计者。表示可以包括布局、列表或设计异常事件、以及可操作来与异常事件进行交互的控件。异常事件可能表明要求设计者做出某一动作。在一些情况下以及对于一些异常事件,尽管可能生成异常事件,但是可能不会因为未能提供要求的信息而在设计处理中阻止设计者。例如,在一些实施例中,工作点的位置(可能被近似为邮码)是影响布局的工作点属性。这可以是如下情况,其中不同的邮码隐含不同的管理制度,例如对房顶负荷、缩进量等的不同要求。因此,设计规则会要求提供邮码。这种情况下,如果设计者未能为工作点指定邮码,则可以将该故障记录为关于设计的元数据,并且可以生成邮码异常事件1110。在邮码异常事件1110的未决期间,仍然可以允许设计者对对象进行分类并生成布局或下游文档,可能使用系统提供的默认邮码或者管理制度。可替换地,系统可以允许设计者在异常事件存在的同时执行一些不相关的动作,但是可以要求设计者在特定动作(例如允许布局生成、仿真、或下游文档生成)之前解决该异常事件。例如,可以允许设计者在输入邮码之前继续对对象进行分类,但是阻止设计者生成布局。作为另一个示例,其他元数据可以表示重大的情况,因为不能选择继续进行设计。 例如,如果设计者将模块放置在排气扇之上,则系统可能生成错误异常事件1115。设计者可以在创建最终设计之前解决该异常事件1115。如果用户没有解决该异常事件(例如,忽略了它),则该异常事件可以保持在异常事件列表1105中,以供管理者复查。用户的一些类型的解决方案(例如遵从要求或改变)可以将该项从异常事件列表中去除。用户的其他类型的解决方案(例如,重载或以其他方式明确拒绝遵从所要求的信息或改变)导致异常事件的修改和异常事件的维持,以及用户重载异常事件历史中的输入,这对将来的修改、管理者复查、合约生成等有用。以下讨论其他类型的异常事件。设计者可以以各种方式与要求设计者动作的这些异常事件进行交互。例如,设计者可以选择通过输入工作点的邮码来解决邮码异常事件1110。这可以以多种方式执行,包括通过上述用于输入项目属性的机制。可替换地,异常事件1110本身可以与用于解决它的机制关联。例如,邮码异常事件1110可以包括可以输入邮码从而与项目关联的字段。当用户解决异常事件时,可以使系统重新计算或重新生成信息。例如,当用户在邮码异常事件中输入值时,系统可以使该邮码生效,并且可以例如使用新的位置信息重新生成布局。响应于异常事件,用户可以提供足以补救异常情况或规则违反的相符信息,该信息可以包括项目属性、客户属性、设计优选、工作区边界、和靶框边界。一些实施例可以识别该相符信息并且使用该信息来修改项目状态信息或其它设计信息。接收到相符信息之后,系统可以移除相应的异常事件。系统还可以包括这样的异常事件,其反映关于设计的信息或元数据,该设计可能对下游用户和处理有用。例如,如果设计者以与被分类为“非法风区”(如已经通过现场检查员确定)的特征重叠的结构来放置模块,则可以生成排斥的异常事件1120。如上所述,这些排斥的异常事件可以呈现给设计者,并且设计者可以操作控件来遵从(例如,消除或改善) 该异常事件(通过例如移除讨论中的特定模块)。可替换地或附加地,一些异常事件(包括一些排斥的异常事件)可以与设计一起保持或者与设计关联地保持,从而对随后使用该设计的处理可用。例如,另一个软件程序可以使用排斥的异常事件信息来生成合约异常事件列表,其可以被列为设计者与客户的合约条款的一部分。因此,例如,对应于放置在漏水房顶区域中的模块的异常事件1120可以被下游处理用来生成合约的特定条款,其限制设计者将模块放置在漏水房顶区域中。一些异常事件还可以被设计为需要来自除了设计者的个人或管理机构的复查和附加的认可。例如,与使房顶承受其最大设计承重能力的95%的负荷相关的异常事件1125 可以要求获得设计者的管理者的认可。在设计者继续(至少针对特定的设计动作)之前,该异常事件可以要求获得管理者或者其他第二用户的认可。可替换地,系统可以产生对应于所有这些需要认可的异常事件的列表,并且该列表可以被用作设计的下游处理的一部分, 从而允许用户继续进行至少一些任务而不管该异常事件。稍后的遵从、重载、或对异常事件进行重载的授权(例如通过管理者)可以重新生成相关的太阳能收集器布局,以使得用户的居间工作不会被浪费。一些实施例可以实施一些或全部上述异常事件与动作的组合。例如,根据异常事件,设计者通过系统可用的合理动作可以包括“忽略异常事件”、“自动修复布局”、“重载异常事件”、“删除一个或多个收集器”、“重新生成布局”、“输入值并重新计算”、“为管理者标记”、“遵从异常事件”等的变型。例如,用户可以通过如软件控件来为系统发出一个命令,以采取步骤来自动尝试纠正异常情况,例如通过按照消除该异常情况来修改项目状态信息或设计。一些实施例可以记录用户动作,包括那些采取来作为解决异常事件的部分,包括用户授权。动作的记录可以与异常事件关联,与给定项目一起存储,导出给下游用户等。其他实施例可以配置来重新评估异常情况的存在,不管有没有用户的输入或推动,这样,如果异常情况不再存在,则系统可以消除该异常事件。图12示出了用于实现异常事件的处理。在步骤1205至1210,系统可以进入输入验证循环。在步骤1205,设计者可以输入工作点信息,将对象分类为特征,并且输入特征属性和其他设计属性及优选。在步骤1210,系统可以分析并验证设计者的输入,如通过对几何对象和项目状态信息中的其他输入信息施加规则。验证引擎可以使用对该类对象特定的或一般的验证规则。这些验证规则可以与项目分级结构一起存储或者存储到项目外部。在步骤1212,随着验证引擎对任意矛盾的记录,这些矛盾可以被置于异常事件列表中,例如, 以计算机存储器中的数据结构的形式放置。如上所述,这些异常事件可以显示给用户。用户可以选择解决置于异常事件列表中的异常事件,可替换地,用户可以输入更多的属性、类别、和其他信息。输入验证循环1205至1210可以一直继续,直到用户使得布局生成为止,如在步骤1215。这可以使得系统进入布局验证修改循环1215-1220-1225-1230。如步骤1220所示,可以对所得布局进行分析和验证,以确认其是否符合设计优选、特征及项目属性、布局规则、期望输出、和其他编码的信息准则。在步骤1222,由所生成的布局产生的任何变化或偏离可以再次被记录为异常事件并且被置于异常事件列表中。在步骤1225,如上所述,可以向用户呈现修改布局的能力。这可以包括改变属性或优选、解决异常事件(其可以引起属性或布局的改变)、添加或删除模块等。如步骤1230所示,用户的动作可以通过验证引擎来验证。在步骤1232,由用户的动作引起的异常事件可以再次被添加到异常事件列表中。在一些情况下,用户进行的改变可以触发布局的重新生成。例如,如果用户增大了缩进量属性,则可以重新生成布局来符合增加的缩进量。根据异常事件的类型,可以根据需要或设计者的期望来重复1225-1230循环(其中,用户登录被验证并且生成异常事件而不重新生成布局)或者 1215-1220-1225-1230循环(其中用户入口引起布局的重新生成)。在步骤1235,通过该处理生成的一些或所有元数据(如果存在,包括异常事件和为了解决该异常事件所采取的动作),可以被存储或以其他方式使下游用户可用。例如,可以根据所有的合约排除的异常事件来生成合约条款列表,并且可以生成所有需要认可的异常事件的列表并将其转发给适当的认可实体。用户界面可以提供合约异常事件列表,其对应于与太阳能收集器安装设计违反设计规则有关的异常情况,其中合约异常事件或情况提供足够识别合约中包含的条款的信息。通常,任意元数据、异常事件、或用户采取的动作可以被包含为项目状态信息的一部分。7.项目版本
一些实施例可以提供系统或用户界面,以用于针对特定安装工作点来浏览、创建、 和操作太阳能收集器布局设计的多个版本。使用多个版本可以允许设计者例如快速并容易地通过选择替换模块、替换特征类别、替换工作区和/或靶框边界、以及其他类型的替换输入或设计优选来浏览布局和其他输出。这些版本为设计者提供了交互地浏览来自各种输入改变的输出改变的能力。一些实施例可以允许设计者快速地从一个版本移动到另一个版本,而其他实施例可以允许设计者用一个动作来影响多个版本。给定版本可以包括用户定义的项目状态信息,其提供用户定义的设计优选、特征属性、和项目属性的独特组。具有该输入信息的不同组的不同版本可以对应于一个备选的太阳能收集器安装布局,其中每个版本的备选布局由独特组的数据之间的差异产生。独特组的数据还可以包括工作区状态信息、靶框状态信息、几何对象信息。在一些实施例中,给定安装项目的不同版本将共享工作点和/或特征信息,包括属性。这些版本可以定义可能不同的工作区、靶框、和布局。在其他实施例中,多个版本可以不共享所有的特征信息,因此,不同的版本可以具有不同的特征、类别、或特征属性。多个版本可以共享各种类型的输入项目状态信息,其中包括几何对象、对象类别、以及特征属性、 项目属性。多个版本可以通过保持各独立数据组之间的相关性来共享数据。这可以通过使多个版本参考共享项目状态信息的相同副本来实现,如通过参考存储器中的相同位置,如通过指针。每种类型的输入数据(例如,设计优选、特征属性、项目属性等)可以被分为两部分,其中一个或多个单独的数据被共享和/或一个或多个单独的数据不被共享。相关版本可以共享以上结合附图IOA至图IOB描述的分级结构的一层或多层的信息。例如,一组相关版本可以共享工作点的一般描述及其物理特性,包括特征和特征的类别。多个版本可以在分级结构的任意点处被彼此分支。在树形分级结构的情况下,多个版本之间可以共享分支点之上的元素,以使得对分支之上的数据的改变对两个版本都适用。可替换地,可以保持分支点之下的数据的两个或多个副本,每个副本用于一个版本,以使得对一个版本中的分支点之下的数据的改变不影响其他版本(如果存在)中相应的数据。在一些实施例中,版本间的分支点可以在工作区层。例如,图13在1305处示出了三个版本。版本1305被示出为依赖于工作点从而共享工作点,因此,这些版本可以共享几组编码信息,包括设计规则1004、一些或全部特征1002及其类别和属性等。在这种情况下, 对工作点1001或特征1002的单独的改变(例如,将几何对象重新分类为另一类特征,对特征属性的改变等)将应用于所有三个版本1305,成为所有三个版本的固有部分,并从而反映在所有三个版本1305中。在另一示例中,每个版本1305可以包含不同的和单独的工作区1005、靶框1010、以及由布局引擎生成的相关子元素(这些子阵列等没有示出)。该情况下,对工作区、靶框、或子元素的改变(例如,特定模块的手动放置,或者串的布线图案的改变)可能仅对其中执行了改变的版本适用。这会是有用的,因为设计者可能希望项目描述 (例如特征类别)在所有版本中是不变的。不强迫设计者通过对特征属性进行手动的单独改变来手动更新多个版本,而是在多个版本间提供共享类别的系统被布置来“自动”更新所有相关的版本。以此方式,项目数据结构可以包括设计的备选版本,如上所述,其中每个备选版本包括独立的(非共享的)项目状态信息和共享的项目状态信息。(非共享的)独立的项目状态信息针对每个版本而不同。这样,当与共享的项目状态信息组合时,该状态信息可以在不同版本之间定义不同的安装设计。一些实施例可以允许在分级结构的更高层或更低层处在多个版本之间分支。例如,版本可以在分级结构的最高层分支,从而多个版本不共享任何公共的特征,包括特征类别。可替换地,版本可以在低层分支,例如,在特定子阵列的串的层,例如,如果一个版本具有在南北向的行中组成串的模块,同时备选版本具有主要组成为东西向的行的模块。在这种情况下,这两个版本可以共享分支点之上的元素(例如,通用的靶框设计优选),以使得对一个版本的靶框设置的改变将影响其他版本。如图14所示,根据一些实施例的系统可以提供一个用户界面,用于浏览、创建、修改、和操作不同版本。特别地,可以提供一个或多个版本的列表1400。列表1400可以反映给定版本特有的分级结构的一层或多层,如这里针对“版本1”所示。该界面可以提供诸如工具箱控件1450之类的机制,从而可以激活(或选择)版本,以在用户界面中显示或进行其他操作。如果显示了分级结构的层,如针对1405处的版本1所示,可以提供控件来允许用户选择子元素(例如1405处的版本1的第一靶框1410),从而对该子元素进行操作,例如使其在直观表示中突出显示,显示属性框(未示出)、概要信息等。列表1400可以反映或示出各种版本的分支点。当一个版本被激活时,该版本的内容可以显示在直观表示中。因此,例如,当一个版本被激活时,对应于该版本的靶框、工作区、特征属性、模块布局、异常事件(参见以下描述)等都可以被显示。对一个版本的激活可以引起布局引擎重新计算对应于该版本(与该版本的属性一致)的布局。激活还可以引起关于该版本的信息(例如概要信息)被显示 (例如以状态行或字段的形式)。随着对工作点特征的创建和分类,以及随着布局、异常事件等的生成,这些属性和异常事件可以与当前激活的版本关联。当对激活的版本进行改变时,如果该改变是对与其他版本共享的元素进行的,则该改变也可以反映在其他版本中。因此,例如,如果如上所述两个版本共享特征类别信息, 则对工作点的给定特征的重新分类或对其属性的修改会影响两个版本。反映在未激活版本中的改变可能引起与该版本相关的布局的重新计算。对于版本间未共享的信息,对激活版本的改变不影响其他版本。可以提供诸如新版本的工具箱控件1455之类的机制,从而可以创建新版本。可以通过抓取(并且随后用工作点属性填充)来创建新版本。可以是这样的情况,即,通过默认的方式来创建初始版本作为新项目的第一(仅在那时的)版本。可替换地或者附加地,新版本可以从之前版本继承一些太阳能安装项目属性(如果存在),例如项目属性和特征类别。因此,例如,如果已经定义并分类了一组特征,新创建的版本可以继承这些特征和类别。还可以提供诸如版本复制工具箱控件1460之类的机制,从而可以复制或备份版本。可以通过从原有布局或版本复制(例如,分支或备份)来创建一个新的版本。当前激活的版本可以被用作从中分支新版本的版本。新复制的版本开始可以具有其同属版本的所有或大部分属性,例如,相同的工作点属性、靶框及靶框属性、异常事件等,此时备份版本初始地移植有至少一些与原始版本相同的状态信息。随后对新复制版本修改可以反映或可以不反映在原始版本中,这取决于(如图13所示)是否对版本共享的元素进行改变。在一些实施例中,用户可以对与新版本或备份版本对应的用户定义的设计优选和特征属性的独特组进行改变,其不反映在与在新版本或备份版本之前创建的任意版本对应的用户定义的设计优选和特征属性的独特组中。可以提供诸如版本删除工具箱控件1465之类的机制,从而可以删除版本,例如从显示中删除,以及潜在地从与该版本相关的存储器中删除。可以提供类似的机制(例如版本重命名工具箱控件1470)来对版本进行重命名。可以提供生成版本特有信息的机制,或者以其他方式对版本进行操作,例如提供部件概要工具箱控件1475来生成版本的部件概要(如以.CSV文件的形式),提供版本导出工具箱控件1479来将版本信息保存为另一种格式(例如数据库记录或记录组),提供版本仿真工具箱控件1485来执行和/或生成关于版本的仿真数据,提供版本仿真导出工具箱控件1490来存储或导出版本仿真信息(例如,以.CSV文件的形式),等等。上述每种控件都可以应用于当前激活的版本、选择的版本或版本组,或者应用于所有版本。控件1477还可以用来生成项目的各种版本的概要。该版本概要包括关于每个版本的各种类型的比较信息,包括诸如太阳能收集器计数、成本、重量等之类的布局信息,诸如期望的性能、峰值功率、产生每千瓦时的成本、最小能量产出等之类的仿真数据,以及诸如异常事件计数和类型等之类的其他类型的信息。关于版本中模块的非法和缺陷的或其他不当放置的信息可以被记录在版本概要中。还可以关于每个版本的信息(诸如项目性能、 仿真信息、电功率、功率效率、成本、材料、物理尺寸、部件计数、和异常事件)来生成版本概要信息。也可以针对特定版本的子元素(诸如工作区、靶框、子阵列、模块、串等)来生成并显示该信息。图15示出了一个采样版本概要1500,其中概括了几个版本1510。设计者可以将版本概要信息用于多种用途,包括在各种版本之间进行选择和/或识别版本中的错误或无效。可以将版本概要信息导出到外部文件或存储器中。用户可以选择要显示或导出哪种类型的版本概要信息。可以在多个文件中(或者有利地,在单个文件中)存储安装项目的各种版本。与上述单个版本的安装项目相同,具有多个版本的项目也可以以XML类型的格式来表示,其中顶层工作点节点可以包含特征及其类别的列表。工作点节点还可以包含多个版本节点, 版本节点又可以包含多个工作区和靶框节点。每个靶框节点可以包含子阵列节点,以此类推。与版本相关的数据(诸如版本概要信息、名称等)可以与版本一起存储。特别地,可以根据版本的不同而改变的设计输出信息(诸如太阳能收集器布局信息、版本概要信息、仿真数据、合约信息、材料清单信息、异常事件信息等)可以与版本一起高速缓存或存储,或者与版本位于相同的位置。在一些实施例中,可以提供“撤销”控件(例如,工具栏图标或键盘快捷键)来允许设计者撤销对项目和/或版本的一个或多个改变。在一些实施例中,当设计者对版本进行改变时,无论是对布局的修改、对对象的分类等,该改变都被实施例记录。然后,控件可以允许用户通过倒转其效果来“撤销”改变。在一些实施例中,可以通过对项目或版本的状态拍快照来记录改变。实施例可以通过恢复返回到快照来撤销该改变。可替换地,实施例可以记录通过改变(或其逆)实现的状态转变。然后,可以通过倒转该状态转变来实现“撤销”。 以此方式,可以保持多级撤销,如通过使用快照或转变栈。类似地,可以实现重做功能,其中 “撤销”动作引起逆(“重做”)动作的快照或转变,例如通过将“撤销”的逆推入重做栈。8.说明性示例图16A至图16E示出了来自根据本文所述的系统和方法的一些实施例的布局软件的屏幕截图示例。图16A示出了用户界面1600,其中具有与在房脊1602处相遇的两个倾斜房顶表面对应的几何对象的工作点的直观表示1601包含多个实体障碍物(通风口 1603) 和线性障碍物(管子1604)。用户界面1600还可以包括工具栏1605和属性选项板1606。 该界面可以包括版本显示(未示出)、版本概要(1620)、异常事件列表(未示出)、用于用户输入和系统输出的字段1630,并且可以同时显示上述部分。如图16B所示,工具栏1605形式的控件可以为用户提供将对象分类为特征(此处示出为房顶控件1610、实体障碍物控件1612、和线性障碍物控件1613)、以及在直观表示中创建工作区边界1611的能力,所述工作区定义了太阳能模块可以放置的范围。可以提供撤销对象分类的控件1614。可以提供创建布局靶框的控件1615,同时提供生成实际布局的控件1616。可以提供显示控件1625来选择显示哪个界面元素,例如异常事件列表、属性选项板、版本概要、版本列表等。可以将布局实质上限制到工作区边界和靶框边界的交叉部分, 并且可以至少部分地根据与靶框关联的设计优选组来生成布局。如图所示,可以以弹出或滚改等的形式来与控件一起提供有用(但非限制的)文本。如图16C所示,还可以提供包含实现许多相同功能的控件的菜单。如图16D所示,属性选项板可以允许用户看见和/或调整与特定特征相关的属性。图16E示出了在一个直观表示中生成PV模块的布局的结果,该直观表示包含两个房顶对象1602、大到与每个房顶表面具有相同边界的两个工作区边界、以及三个靶框边界 (其中两个是矩形靶框1650,在一个房顶和一个工作区的仅一部分上延伸,另一个是非矩形靶框1650A,在两个房顶和工作区的一部分上延伸)。如图所示,每个靶框中放置有一组模块,符合与各房顶、工作区、和其中所包含的障碍物有关的布局规则。9.结论本领域技术人员将认识到,上述归类和规则的描述仅表示所附权利要求所定义的发明的一些实践方法。可以使用其他方法来基于与工作点相关的布局要求在几何对象之内和周围布置PV模块,以实现类似的结果,例如表格、脚本、数据结构等。如上所述或者如规则中心语言(例如LISP)中使用的那样,规则可以是明确的和/或包括说明语句。可替换地,可以在数据结构、命令语句、程序流、程序构造、放置和布置算法等中隐含地表达一个或多个“规则”。这里,规则被用作一种说明一般方法的方式,通过该一般方法,工具可以使用与任意对象关联的信息来创建PV模块布局。特定的规则(例如布局约束)可以与特定对象或特征和/或特征的特定类或类型明确关联,这种规则可以被定义为布局引擎的一部分并且隐含地链接到对象或类。这里所描述的系统、方法、和技术可以以计算机硬件、固件、软件、或其组合的形式来实现。实现这些技术的系统可以包括适当的输入和输出组件、计算机处理器、和用于通过可编程处理器执行的以机器可读存储器组件或介质有形实现的计算机程序产品。可以通过可编程处理器执行指令程序来执行实现这些技术的处理,以通过操作输入数据并生成适合的输出来执行期望的功能。这些技术有利地可以被实现为一个或多个计算机程序,该计算机程序可以在可编程系统上执行,所述可编程系统包括至少一个耦合来从/向数据存储器系统接收/发送数据和指令的可编程处理器、至少一个输入组件、和至少一个输出组件。每个计算机程序可以根据需要以高级程序编程语言或者面向对象的编程语言、或者以汇编或机器语言来实现。在任意情况下,该语言都是可以被编译或解释的语言。作为示例,合适的处理器包括通用和专用微处理器二者。通常,处理器从只读存储器和/或随机访问存储器接收指令和数据。适合有形地实现计算机程序指令和数据的存储器组件包括所有形式的非易失性存储器,作为示例,包括诸如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、和闪存组件之类的半导体存储器组件、诸如内部硬盘和可移动盘之类的磁盘、磁光盘、以及压缩盘只读存储器(CD-ROM盘)。上述任意之一都可以被专门设计的 ASIC(专用集成电路)补充或者合并。本文中所描述的各种数据结构和方法步骤中的每一个的表示都可以有利地呈现(例如显示或打印)到一个装置(例如,屏幕、监视器、或打印机)上。尽管该公开描述了特定实施例和应用,但是其他实施例和应用对本领域普通技术人员来说也是显而易见的,包括不提供本文所述所有特征和优点的实施例和应用,并且这些实施例也在本公开的范围之内。此外,选项和备选的所有列表和描述都被解释为示例性的而非限制性的,列表是用来帮助说明的而不是试图列举所有可能的备选。本发明的范围仅由所附权利要求来限定。表I 取决于项目设计的信息输出采样
输出#典型的太阳能项目开发步骤1站点条件2设计简图3构造绘图和细节4部件列表5材料清单6构造日程7成本估计8财务分析9能量仿真10建议11报价12展示13合约14子合约
权利要求
1.一种在计算机上生成太阳能收集器安装设计的方法,包括提供安装工作点的表示,所述表示包括用户定义的项目状态信息; 对用户定义的项目状态信息应用规则,以确定关于太阳能收集器安装设计的元数据; 使用所述元数据生成一组设计异常事件,其中每个设计异常事件对由用户定义的项目状态信息违反了软件编码的规则而引起的异常事件状况进行编码; 向用户提供所述一组设计异常事件的表示;和针对每个设计异常事件,向用户呈现可选项以便忽略该设计异常事件或者遵从该设计异常事件。
2.如权利要求1所述的方法,其中异常事件状况的至少一个涉及由用户的遗漏、违反法规、违反太阳能收集器制造者规范、违反客户要求、违反物理空间约束、违反工程原理、和违反公司工程策略组成的组中的一个。
3.如权利要求1所述的方法,还包括在基于计算机的用户界面中显示所述一组设计异常事件的至少一些成员。
4.如权利要求1所述的方法,还包括保留用户关于每个设计异常事件作出的动作的记录。
5.如权利要求1所述的方法,其中随后认可用户关于第一设计异常事件作出的动作。
6.如权利要求1所述的方法,其中随后认可对第一设计异常事件的忽略。
7.如权利要求1所述的方法,其中用户能够获得的可选项还包括明确重载第一设计异常事件,以允许用户表明该异常事件状况是容许的。
8.如权利要求7所述的方法,其中随后认可用户关于第一设计异常事件作出的明确重载。
9.如权利要求8所述的方法,还包括保留对认可的记录。
10.如权利要求1所述的方法,还包括从用户接收足以修复第一异常事件状况的遵从信息,以及使用该遵从信息来修改几何对象或项目状态信息中的至少一个。
11.如权利要求10所述的方法,还包括接收用户的遵从信息之后从列表中去除对应于第一异常事件状况的第一设计异常事件。
12.如权利要求10所述的方法,还包括在历史中记录对用户的遵从信息的接收。
13.如权利要求10所述的方法,其中用户的遵从信息包括从由项目属性、客户属性、设计优选、工作区边界、和靶框边界组成的组中选出的至少一项。
14.如权利要求10所述的方法,其中用户的遵从信息包括用户针对系统的自动解决第一设计异常事件的命令,并且其中该方法还包括按照对关于安装设计的第一异常事件状况的去除来修改项目状态信息。
15.如权利要求1所述的方法,还包括从第二用户接收设计异常事件的认可,并将该认可记录为所述一组设计异常事件的一部分。
16.如权利要求1所述的方法,还包括从第二用户接收对设计异常事件的认可,并将该认可记录为项目状态信息的一部分。
17.如权利要求16所述的方法,还包括从所述一组设计异常事件中去除第一设计异常事件。
18.如权利要求1所述的方法,还依次包括接收用户对项目状态信息的修改、再次应用规则以确定关于安装设计的元数据、检测与第一设计异常事件对应的第一异常事件状况不再存在、和去除来自用户的设计异常事件的表示。
19.如权利要求1所述的方法,其中应用规则以确定元数据还包括生成与安装工作点对应的太阳能收集器的布局。
20.如权利要求19所述的方法,其中项目状态信息包含作为安装工作点的特征的几何对象的分类,并且其中应用规则以确定元数据还包括生成与安装工作点的特征的属性对应的太阳能收集器的布局。
21.如权利要求1所述的方法,其中应用规则以确定元数据还包括根据由仿真数据和项目概要数据组成的组中的至少一个生成元数据。
22.如权利要求1所述的方法,其中项目状态信息包括反映了不同版本的太阳能收集器安装设计的项目版本信息。
23.如权利要求1所述的方法,其中项目状态信息包括当生成太阳能收集器安装设计时要应用的设计优选。
24.如权利要求1所述的方法,其中项目状态信息包括作为特征类的实例的几何对象的分类以及分类后的对象的关联的特征属性。
25.—种为太阳能收集器安装项目生成合约条款的方法,包括在计算装置中提供安装工作点的表示,所述表示包括几何对象和项目状态信息;对几何对象和项目状态信息应用软件编码的规则以确定关于安装设计的元数据;使用元数据生成一组异常事件,异常事件的每一个对由于违反软件中编码的规则而引起的且关于安装设计的异常事件状况进行编码,异常事件提供了足以识别用于包括在合约中的条款的信息;和生成用于包括在合约中的条款的列表,其中所述条款对应于一个或多个合约排除项。
26.如权利要求25所述的方法,其中用于包括在合约中的条款涉及有限保修。
27.如权利要求25所述的方法,其中用于包括在合约中的条款涉及免责声明。
28.一种基于计算机的用户界面,用于设计太阳能收集器安装设计,包括太阳能收集器安装设计的用户界面的表示,该表示包括实质根据项目状态信息布置在一个表面上的太阳能收集器;设计异常事件的列表的表示,其中设计异常事件的至少一个对应于与太阳能收集器安装设计对软件编码设计规则的违反有关的异常事件状况;和用户界面控件,操作来允许用户通过与设计异常事件交互来解决异常事件状况,其中与异常事件的交互包括执行由遵从设计异常事件和重载设计异常事件组成的组中的至少一个;其中允许用户在解决异常事件状况之前在用户界面中执行其它动作。
29.如权利要求观所述的用户界面,其中异常事件状况涉及由用户的遗漏、违反法规、 违反太阳能收集器制造者规范、违反客户要求、违反工程原理、和违反公司工程策略组成的组中的一个。
30.如权利要求28所述的用户界面,还包括操作来允许第二用户通过认可异常事件来解决异常事件状况的控件。
31.如权利要求28所述的用户界面,其中与设计异常事件的交互包括将数据提供到设计异常事件的字段中,该数据被用来修改项目状态信息。
32.如权利要求观所述的用户界面,其中与设计异常事件的交互包括选择一个用以自动调整项目状态信息以便去除异常事件状况的控件。
33.如权利要求观所述的用户界面,其中记录了交互的至少一部分。
34.如权利要求33所述的用户界面,其中所记录的交互的一部分被记录为太阳能收集器安装设计的一部分。
35.如权利要求观所述的用户界面,还包括操作来接收对设计异常事件的认可并将该认可记录为项目状态信息的一部分的控件。
36.如权利要求观所述的用户界面,还包括操作来生成对设计异常事件的认可的列表的控件。
37.如权利要求观所述的用户界面,还包括操作来生成与关于太阳能收集器安装设计对设计规则的违反的异常事件状况相对应的合约排除项的列表的控件,合约排除项提供了足以识别用于包括在合约中的条款的信息。
38.如权利要求观所述的用户界面,其中在显示装置上同时显示太阳能收集器安装设计的表示和设计异常事件的表示。
39.如权利要求28所述的用户界面,其中太阳能收集器包括光伏模块。
全文摘要
实施例可以包括创建和编辑工作点的表示、创建各种数据对象、将这些对象分类为具有伴随属性和布局约束的各种类型的预定义的“特征”的系统和方法。作为分类的一部分或者补充,实施例可以包括创建、关联和编辑这些对象的固有和非固有属性的系统和方法。设计引擎可以将设计规则应用于前述特征以生成一个或多个太阳能收集器安装设计备选方案,包括生成一个或多个设计备选方案的物理布局或布置的屏幕表示和/或纸件表示。在一些实施例中,可以生成关于设计处理的元数据,所述设计处理包括对特征分类和提供用户输入、生成布局、和随后对那些布局进行修改的处理。元数据可以包括关于项目状态信息或设计中的异常事件状况的信息。可以生成对应于异常事件状况的异常事件的列表,并且设计者可以以各种方式与这些异常事件交互,比如通过遵守规则来从异常事件列表中去除一项或者重载对规则的应用。异常事件对于其它用户的动作可以是非阻止的。
文档编号G06F17/50GK102326163SQ201080008365
公开日2012年1月18日 申请日期2010年2月3日 优先权日2009年2月20日
发明者亚历山大·弗兰坎, 加里·韦恩, 斯科特·莱曼, 朱尔斯·布伦纳, 迈克尔·扎伊德曼 申请人:太阳能公司